第71回.印刷(PrintOut)
シートの内容をマクロVBAで印刷する場合は、PrintOutメソッドを使用します。
ブック、シート、セル、それぞれにPrintOutメソッドが存在するので、印刷範囲によって使い分けてください。
PrintOutメソッド
式.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate,
PrToFileName, IgnorePrintAreas)
式.には、
Windowオブジェクト
Workbookオブジェクト
Worksheetオブジェクト
Rangeオブジェクト
Chartオブジェクト
Sheetsコレクション
Worksheetsコレクション
Chartsコレクション
これらのオブジェクトそれぞれにPrintOutメソッドがあります。
名前付き引数です。
引数が多いので、使用時には名前付き引数を使用してください。
非表示シートに対してPrintOutメソッドを使用した場合はエラーとなります。
式.には、
Windowオブジェクト
Workbookオブジェクト
Worksheetオブジェクト
Rangeオブジェクト
Chartオブジェクト
Sheetsコレクション
Worksheetsコレクション
Chartsコレクション
これらのオブジェクトそれぞれにPrintOutメソッドがあります。
From | 印刷を開始するページの番号を指定します。 この引数を省略すると、最初のページから印刷します。 |
To | 印刷を終了するページの番号を指定します。 この引数を省略すると、最後のページまで印刷します。 |
Copies | 印刷部数を指定します。 この引数を省略すると、印刷部数は 1 部になります。 |
Preview | Trueの場合、印刷をする前に印刷プレビューを実行します。 False、または省略した場合、直ちに印刷を行います。 |
ActivePrinter | アクティブなプリンターの名前を指定します。 |
PrintToFile | Trueの場合、ファイルへ出力します。 引数 PrToFileNameが省略された場合、出力先のファイル名を指定するためのダイアログ ボックスを表示します。 |
Collate | True の場合、部単位で印刷します。 |
PrToFileName | 引数PrintToFileがTrueの場合、この引数に印刷したいファイルの名前を指定します。 |
IgnorePrintAreas | Trueの場合、印刷範囲を無視してオブジェクト全体を印刷します。 |
名前付き引数です。
引数が多いので、使用時には名前付き引数を使用してください。
PrintOutメソッドの使用例
ActiveWorkbook.PrintOut
ブックの全シートを印刷します。
ActiveWorkbook.PrintOut Preview:=True
ブックの全シートを印刷プレビューします。
ActiveWorkbook.PrintOut Copies:=2
ブックの全シートを2部印刷します。
ActiveWorkbook.PrintOut From:=2, To:=3
ブックの全シートの、2ページ~3ページを印刷します。
Activesheet.PrintOut
アクティブシートを印刷します。
Worksheets(1).PrintOut ActivePrinter:="プリンター名"
1番目のシートを、"プリンタ名"のプリンターに印刷します。
ActiveWorkbook.Sheets.PrintOut
ブックの全シートを印刷します。
ただし、非表示シートがあるとエラーとなります。
ただし、非表示シートがあるとエラーとなります。
Range("B2:D20").PrintOut
B2セル~D20セルの範囲を印刷します。
印刷時にプリンターを選択したい場合
印刷プレビューにすることで、自由にプリンターを選択して印刷できます。
プレビューが不要で、プリンターのみ選択させたい場合は、、
印刷ダイアログを使用する(xlDialogPrint)
印刷ダイアログを使用する(xlDialogPrint)
入力しやすいように、セルに色をつけている事が多いと思いますが、印刷時には、ちょっとじゃまな場合もあります。インク(トナー)も無駄ですしね。印刷時に色指定を解除して印刷する方法になります。Application.Dialogs(xlDialogPrint).Show 印刷タイアログを表示します。
こちらをご参照ください。印刷総ページ数の取得
Worksheetオブジェクト.PageSetup.Pages.Count
これで総ページ数は取得できますが、PrintOutが対応している幅広いオブジェクトには対応できません。
印刷対象の各シートの印刷ページ数を事前にチェックするような、事故防止策が必要になる場合もあるでしょう。
PageSetupについては、以下で詳しく解説しています。
PageSetupについては、以下で詳しく解説しています。
第73回.ページ設定(PageSetup)
・PageSetupオブジェクト ・PrintCommunicationプロパティ ・ヘッダー・フッターのプロパテの設定方法 ・余白の設定方法 ・印刷範囲の設定/クリア:PrintArea ・総ページ数:Pages.Count ・改ページの位置を設定:PageBreak ・最後に
間違った印刷を大量に行わないわない為には
マクロVBAで印刷できるようにすると大変便利ではありますが、
その反面、間違った印刷を大量に行ってしまうといった事故も発生します。
処理方法(複数ドキュメントを順に印刷するような場合)によっては難しい場合もありますが、
可能な限り印刷プレビューを経由させるようにした方が印刷のトラブルは減ります。
印刷内容によって、適宜判断したほうが良いでしょう。
その反面、間違った印刷を大量に行ってしまうといった事故も発生します。
可能な限り印刷プレビューを経由させるようにした方が印刷のトラブルは減ります。
印刷内容によって、適宜判断したほうが良いでしょう。
同じテーマ「マクロVBA入門」の記事
・シートの保護 ・シートの保護解除 ・シート保護・解除の実践例 ・ブックの保護 ・ブックの保護解除 ・最後に
第69回.シートの非表示(Visible,Hidden)ユーザーが操作・閲覧する必要のないシートは非表示にする事で使い易いExcelブックにします。マスタ情報やマクロでのみ使用するデータが入っているシート等、通常は使用者が変更することがなく、見る必要もないのであれば、シート保護をするより非表示にしてしまった方が、ユーザーにとっては使いやすいブックとなります。
第70回.ウィンド枠の固定(FreezePanes)ウィンドウ枠を固定し、行の上部や列の左側がスクロールされないようにする場合のマクロVBA解説になります。ワークシートの行の上部や列の左側は、通常は見出しとして使う事が多くなります。ウィンドウ枠を固定することで見出しの行や列を固定し、スクロールしても見出しが表示されたままにする場合が多くなります。
第71回.印刷(PrintOut)第72回.印刷プレビュー(PrintPreview)
・PrintPreviewメソッド ・PrintOutメソッドの使用 ・PrintPreviewメソッドとPrintOutメソッドの使い分け
第139回.エクスポート(PDF/XPS)・PDFとは、XPSとは ・ExportAsFixedFormatメソッド ・PDFのオプションについて ・ExportAsFixedFormatの使用例
第73回.ページ設定(PageSetup,PageBreak)・PageSetupオブジェクト ・PrintCommunicationプロパティ ・ヘッダー・フッターのプロパテの設定方法 ・余白の設定方法 ・印刷範囲の設定/クリア:PrintArea ・総ページ数:Pages.Count ・改ページの位置を設定:PageBreak ・最後に
第74回.ファイルを開くダイアログ(GetOpenFilename)・GetOpenFilenameメソッド ・GetOpenFilenameの使用例 ・GetOpenFilenameの実践例 ・GetOpenFilenameの初期フォルダーの指定 ・GetOpenFilenameの最後に
第75回.名前を付けて保存ダイアログ(GetSaveAsFilename)・GetSaveAsFilenameメソッド ・GetSaveAsFilenameの使用例 ・GetSaveAsFilenameの実践例 ・GetSaveAsFilenameの初期フォルダーの指定 ・GetSaveAsFilenameの最後に
第76回.ファイルダイアログ(FileDialog)・FileDialogオブジェクト ・FileDialogの実践例 ・FileDialogの最後に
第77回.組み込みダイアログ(Dialogs,xlDialogPrint)・Application.Dialogsコレクション ・Application.Dialogオブジェクト ・印刷ダイアログの使用例 ・組み込みダイアログの最後に
新着記事NEW ・・・新着記事一覧を見る
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。