Excel VBA を使って印刷機能を作成する
エクセルシート上のボタンから印刷するサンプルアプリです。
通常エクセルの印刷は印刷範囲を設定してから、「ファイル」、「印刷」メニューを選択して印刷をしますが、
VBAを利用するとワンクリックで印刷することが可能になります。
印刷機能サンプルアプリの説明
印刷ボタンをクリックすると、印刷プレビューが表示されます。
印刷する場合は、エクセルで用意されている 「印刷」 メニューから印刷します。
印刷を中止する場合は「印刷プレビューを閉じる」メニューで印刷を中止します。
印刷設定に必要なプロパティ、メソッド
印刷ヘッダーを設定
印刷ヘッダーを設定するには、WorkSheetオブジェクトのPageSetupオブジェクトのCenterHeader プロパティ を使用します。
ヘッダー・フッターの指定は「& ~ 」という形で指定します。
フォント名は「&」の後ろにダブルクォーテーションで括って指定します。
サンプルソースコードでは「游明朝」というフォント名を「""」で囲って指定しています。
"&""游明朝
その「""游明朝""」にフォントサイズ「24」を指定する「&24」と、
"&""游明朝""&24″
印刷させたい文字列「社員一覧表」を「&」でつなげています。
"&""游明朝""&24″ & “社員一覧表"
印刷範囲の指定
印刷範囲を設定するには、WorkSheetオブジェクトのPageSetupオブジェクトのPrintAreaプロパティを使用します。
サンプルソースコードでは以下のようにセル4行2列の位置からセル20行7列の位置の範囲を指定しています。
PageSetup.PrintArea = wG.Range(Cells(4, 2), Cells(20, 7)).Address
印刷位置の指定
印刷位置を設定するには、WorkSheetオブジェクトのPageSetupオブジェクトのCenterHorizontally/CenterVerticallyプロパティを使用します。
CenterHorizontally 水平方向でページ中央
CenterVertically 垂直方向でページ中央
サンプルソースコードでは以下のように水平方向でページ中央を指定しています。
.PageSetup.CenterHorizontally = True
印刷プレビューの指定
ActiveSheetオブジェクトのPrintPreviewメソッドを使用します。
サンプルソースコードでは以下のように指定しています。
.PrintPreview
サンプルアプリのソースコード コードの作成手順はこちら
Sub ボタン1_Click()
'ワークシートを指定する
Dim wG As Worksheet
Set wG = Worksheets("Sheet1")
'印刷するシートを選択
Worksheets("Sheet1").Select
With ActiveSheet
'印刷ヘッダーの設定
.PageSetup.CenterHeader = "&""游明朝""&24" & "社員一覧表"
'印刷範囲の指定
.PageSetup.PrintArea = wG.Range(Cells(4, 2), Cells(20, 7)).Address
'印刷位置をセンターに指定
.PageSetup.CenterHorizontally = True
'印刷プレビューを表示
.PrintPreview
End With
End Sub
ディスカッション
コメント一覧
まだ、コメントがありません