1

Excel 印刷領域の最大文字列長について、しばらく前に質問しました。

Excel の PrintArea の文字列の最大長

Excel 2010 の場合、印刷範囲は 255 に設定されています。

これは読み取り専用のプロパティだと思いますが (ここでストローを握りしめて)、印刷領域の長さを増やす方法はありますか? エクセルプラグインかな?

そうでない場合は、最大 255 に達したら、プログラムで新しい印刷領域を設定する必要があります。

編集:

私は以下の答えを試しました:

範囲("A1:C3,A5:B6,C7:D8,E1:E2,G1:G2,A10:A11,A13:A14,A16:A17,A19:A20,A22:A23,A25:A26,A28:A29 ,A30:A31,A33:A35,A37:A38,A40:A41,A43:A44,A46:A47,A49:A50,A52:A53,A55:A56,A58:A59,A61:A63,A65:A66,A68 :A69,A71:A72,A74:A75,A77:A78,A80:A81,A83:A84,A86:A87,A88:A89,A91:A92").Name = "MyNamedRange"

正常に動作します - 253 文字。

範囲("A1:C3,A5:B6,C7:D8,E1:E2,G1:G2,A10:A11,A13:A14,A16:A17,A19:A20,A22:A23,A25:A26,A28:A29 ,A30:A31,A33:A35,A37:A38,A40:A41,A43:A44,A46:A47,A49:A50,A52:A53,A55:A56,A58:A59,A61:A63,A65:A66,A68 :A69,A71:A72,A74:A75,A77:A78,A80:A81,A83:A84,A86:A87,A88:A89,A91:A92,A94:A95").Name = "MyNamedRange"

実行時エラー 1004 -(261 文字)

それで、複数の名前付き範囲を設定してから、各名前付き範囲を順番に使用してアクティブシート印刷領域を設定する必要があると思いますか?

どうもありがとう。

4

2 に答える 2

2

名前付き範囲でカンニング:

Range("A1:C3,A5:B6,C7:D8").Name = "MyNamedRange"
それから
ActiveSheet.PageSetup.PrintArea = "MyNamedRange"

名前付き範囲にも255文字の制限があるようです。

次の解決策は、印刷したくない行を非表示にすることです。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "Sheet1" Then
        Cancel = True ' cancel default print method so we can print out stuff ourselves
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        With ActiveSheet
            .Rows("12").EntireRow.Hidden = True ' hide the rows you want hidden
            .Rows("15").EntireRow.Hidden = True ' hide the rows you want hidden
            .PrintOut
            .Rows("12").EntireRow.Hidden = False ' unhide them after
            .Rows("15").EntireRow.Hidden = False
        End With
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub
于 2012-07-10T19:42:16.563 に答える
1

印刷領域全体を 255 文字以下のチャンクに分割しました。

各チャンクを個別の Excel 行にエクスポートしてから、各行を反復処理し、Excel の印刷領域を設定して印刷しました。

于 2012-11-14T21:26:28.783 に答える