1. 第18回 VBAマクロで印刷プレビューを操作する 3/4の概念と基本的な役役
VBA(Visual Basic for Applications)がExcelに組み込まれた拡張機能として、印刷プレビューという重要な機能があります。今回は、その操作について詳しく説明します。
VBAマクロでの印刷プレビューの概念
VBAマクロ内で印刷プレビューを呼び出すためには、`Application.DisplayPrintPreview`という関連命令を使用します。この命令により、Excelが印刷プレビュー画面を表示することができます。プレビュー画面では、ワークブック内のシートやグラフ、テーブルなど、印刷内容を確認することができます。
基本的な役役
1. 印刷前に確認が可能
– 印刷前に詳細な確認ができるため、誤植やフォーマットの不整除を防ぐことができます。
2. レイアウトの調整
– 各ページのレイアウトを確認し、必要に応じてページ布置や段落間空行を調整することができます。
3. ページ数とフォーマットの確認
– 当然のページ数や表格、グラフ等のフォーマットを確認し、印刷前に最終的な状態を確保することができます。
操作方法
VBAマクロ内で印刷プレビューを呼び出すためには以下のようなコードを使用します。
Application.DisplayPrintPreview
ただし、この命令単独では不足しています。具体的、以下の点にも注意が必要です。
1. ワークブックとシートを指定する必要がある場合
- `Workbooks.ActiveBook`や`Sheets.ActiveSheet`のようなコードを使用して、特定のワークブックやシートに絞り込むことができます。
2. 印刷プレビュー終了後の処理
- プレビューが終了したら、必ず`Application.DisplayPrintPreview`を再呼び出さないように注意し、必要に応じて印刷を行うか、印刷をキャンセルすることが重要です。
今回の記事の参考
今回は、VBAマクロでの印刷プレビュー操作の基本概念と役役を説明しました。ユーザ
2. サンプルコードと基本的な書き方
VBA(Visual Basic for Applications)を用いたExcelの印刷プレビュー操作は、非常に便利な機能です。特に、多くのデータ処理タスクにおいて、印刷前に確認することが重要です。本稿では、具体的なサンプルコードと基本的な書き方について説明します。
1. 前提条件
- Excel 365 を使用していること。
- VBAの基本知識を持つこと。
- 実行可能な環境(Excel マクロ Execution Permission)が設定されていること。
2. 操作方法概要
印刷プレビューを操作するために、VBA で `PrintPreview` プロパティーを使用します。このプロパティーを活用することで、ワークブック内のデータを画像として表示し、印刷前の確認が容易になります。
3. サンプルコード
以下に、具体的な VBA コードとその機能についての説明をいたします。
' ワークブックを開き、必要なデータを入力済みであることを前提としています。
' 以下のコードは、印刷プレビューを表示するための基本的な操作です。
Dim objWorkBook As Workbook
Dim objSheet As Worksheet
' 現在開かぶられているワークブックを取得します。
Set objWorkBook = ThisWorkbook
' 活性なシートを取得します。
Set objSheet = ActiveSheet
' 印刷プレビューを表示するために、PrintPreview プロパティーを True に設定します。
objSheet.PrintPreview = True
' プレビューが表示されるときに、メッセージを表示するように指定できます。
If objSheet.PrintPreview Then
MsgBox "印刷プレビューが開始されました。"
End If
' プレビューが終了したら、印刷プレビューを停止します。
While objSheet.PrintPreview
DoEvents ' イベント待機
Loop Until False
' 印刷プレビューを停止したら、PrintPreview プロパティーを False に戻します。
objSheet.PrintPreview = False
' ワークブックを保存する必要がある場合は、以下のコードを実行します。
If SaveFileDialog Then
ThisWorkbook.Save
End If
3. 現場で役立つ応用テクニック
VBAマクロでの印刷プレビュー操作は、実際の作業やプレゼンテーション資料を作成する際に非常に役立ちます。以下に、実際の現場で利用できる応用的なテクニックを紹介します。
1. 基本操作から応用まで
VBAマクロでの印刷プレビュー操作は、基本的に「Print Preview」メニューをクリックすることで開始されます。Windows版とMac版では slightly differentですが、大体の流れは共通しています。
[手順]
1. ワークブックを開き、必要なデータを入力します。
2. 「File」メニューから「Print Preview」を選択します。
3. プレビュー画面が表示されます。
4. 必要な設定を行い、「Close」ボタンをクリックします。
2. 実例: ワークシート内のデータを印刷
実際のワークシートやテーブル内のデータを印刷する際には、以下のような応用的な技巧が役立ちます。
[手順]
1. ワークブックを開き、データを入力します。
2. 「Print Preview」で、表示される画面に基づいて、必要な設定を行います。
3. 特定の行や列を選択し、「Print Range」で「Current Sheet」を指定します。
4. 必要に応じて、ページ番号や表格の位置を調整します。
3. 応用テクニック
[1. 表格内のデータを優先的に印刷]
タブール内でのデータを優先的に印刷する際には、「Print Range」で「This Table」を選択し、必要な行や列を指定します。これにより、大量のデータを簡単に管理できます。
[2. ページ番号と日付の表示]
実際の作業や資料に適したページ番号や日付を表示するために、「Page Number」と「Insert Date」オプションを活用します。ページ番号は右上隅に自動的に追加され、日付は現在の日付を表示します。
[3. 表格内のヘッダーとフッターを印刷]
表格内のヘッダーやフッターを印刷する際には、「Header and Footer」オプションを活用します。名前や会社名など重要な情報を入れることができます。
4. Tips: 早期の解決
VBAマクロでの印刷プレビ
4. ソースコードの解説
VBAマクロを使用してWordで印刷プレビューを表示することが可能です。本文では、基本的な操作とソースコードについて説明します。
基本操作
1. Word.Applicationインスタンスの取得: VBAでWordのアプリケーションを呼び出すために`CreateObject("Word.Application")`を使用します。
2. ドキュメントの作成とプレビュー表示: `Documents.Add("PrintPreview")`を使用して新しいドキュメントを作成し、印刷プレビューを表示するために`ShowNonPrintingElements`を非表示にします。
3. ページ設定:
- 範囲指定: `PageSetup.PrintArea`で印刷する範囲を指定します。例えば、A1-A8の範囲に印刷する場合には`"A1:A8"`を使用します。
- 方向指定: 縦書きや横書きを選ぶために`PrintOrientation`を設定します。`wdportrait`は縦書き、`wdlandscape`は横書きです。
4. 非表示要素の管理:
- ヘッダーとフッターを非表示にするためには`HeaderFooter.Visible = False`を使用します。
- 页眉と页脚も非表示にできるように`PageNumbers Visible`や`LineNumbering.Visible`を設定します。
ソースコード
以下に、印刷プレビューを操作するVBAマクロのソースコード例を示めます。
Set oApp = CreateObject("Word.Application")
Set oDoc = oApp.Documents.Add("PrintPreview")
oDoc.PageSetup.PrintArea = "A1:A8" ' A1-A8に印刷
oDoc.PageSetup.PrintOrientation = wdportrait ' 縦書き
o
5. 陥りやすいエラーと対策
VBA マクロでの印刷プレビュー操作は、さまざまなエラーに遭う可能性があります。以下に、よく発生するエラーとその対策について説明します。
1. "HRESULT_E_INVALIDARG" エラー
このエラーは、引数が不正確である場合に発生します。具体的には、引数の型や値が期待される形式でない場合に起こります。このため、コード内で引数を適切な型と値にチェックする必要があります。
対策:
- 引数を受け取る関連部分で、`TypeCheck` 関数を使用して引数の正当性を確認します。
- 次に予定された例外処理を追加し、不正確な引数に対応できるようにします。
2. "HRESULT_E_NOT_ENOUGH_MEMORY" エラー
このエラーは、プログラムが必要なメモリを足够に持たず、ランタイムで不足を起こす場合に発生します。VBA でメモリ管理が容易く、高負荷の操作を実装する場合は注意が必要です。
対策:
- メモリ消耗量を計算し、最悪ケースでの消耗量を考慮した設計を行います。
- 不要なオブジェクトやレクチュアを早期に解放し、メモリの浪費を防ぐようにします。
3. "HRESULT_E_UNEXPECTED_CALLOVERLOAD" エラー
このエラーは、予定外のロード呼び出しにより発生します。COM オブジェクトのロードとアンロードが適当に管理されていない場合に起こります。
対策:
- COM オブジェクトのロードを制御するために、`CoInitialize` および `CoUninitialize` を適切なタイミングで呼び出すようにします。
- 予定外の
