最新资讯

产品中心

当前位置:主页 > 产品中心 >

シートの操作[印刷する]

发布时间:2019-08-08 点击量:

シートの印刷はPrintOutメソッド

ワークシートを印刷するにはPrintOutメソッドを使います。次のコードはSheet1を印刷します。

Sub Sample08() Worksheets("Sheet1").PrintOut End Sub

また、複数のシートを一気に印刷することもできます。次のコードはSheet1、Sheet2、Sheet3を印刷します。

Sub Sample08_2() Sheets(Array("Sheet1", "Sheet2", "Sheet3")).PrintOut End Sub

印刷時のオプションなどは、実際の印刷操作をマクロ記録してプロパティを調べましょう。

非表示シートを印刷する

Sheet1以外のワークシートをアクティブにしてSample08を実行すると、印刷開始の直前にSheet1が一瞬アクティブになります。印刷のデータをプリンタに送った後はまた元のワークシートが表示されるのですが、一瞬のちらつきが気になります。「それなら、ScreenUpdatingプロパティを使えばいい」とお思いの方もいらっしゃるでしょう。ApplicationオブジェクトのScreenUpdatingプロパティにFalseを指定すると、それ以降プロシージャが終了するまでは画面の更新が抑止されます。確かに

Sub Sample08_3() Application.ScreenUpdating = False Worksheets("Sheet1").PrintOut End Sub

とすれば画面のちらつきはなくなりました。しかし、問題はそこではありません。Sheet1が一瞬アクティブになったことが重要なのです。試しに次のコードを実行してみましょう。Sheet2をアクティブにしてから非表示のSheet1を印刷するマクロです。

Sub Sample08_4() Worksheets("Sheet2").Activate Worksheets("Sheet1").Visible = False Worksheets("Sheet1").PrintOut End Sub

結果はエラーになります。非表示のSheet1はアクティブになれないのでPrintOutメソッドでは印刷できないのです。したがって、印刷したいワークシートが非表示の場合は、そのワークシートを印刷する前に再表示しなければなりません。その際、ユーザーに隠しておいた非表示の印刷用ワークシートが画面に表示されないために、VisibleプロパティにTrueを設定する直前でScreenUpdatingプロパティを使います。

Sub Sample08_5() Worksheets("Sheet2").Activate Worksheets("Sheet1").Visible = False If MsgBox("Sheet1を印刷しますか?", vbQuestion + vbYesNo) = vbYes Then Application.ScreenUpdating = False Worksheets("Sheet1").Visible = True Worksheets("Sheet1").PrintOut Worksheets("Sheet1").Visible = False End If End Sub 印刷プレビューする

印刷プレビューするのは、それほど難しくありません。PrintOutメソッドの代わりにPrintPreviewメソッドを使えばいいのです。次のコードはSheet1の印刷プレビューを表示します。

Sub Sample08_6() Worksheets("Sheet1").PrintPreview End Sub

电子游艺电子游戏机