GEN MUTO'S HOMEPAGE  エクセル大事典  エクセルVBAを極める

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBA中級編−ワークシートを使いこなそう
  ワークシートを印刷しよう!2
 
■ ワークシートを印刷しよう!2

前回に続き、印刷の設定を行うコードの解説を行います。

用紙の余白を設定する
用紙の余白を設定することができます。TopMarginプロパティは、用紙の上余白を、BottomMarginプロパティは、用紙の下余白を、LeftMarginプロパティは、用紙の左余白を、RightMarginプロパティは、用紙の右余白を、それぞれ設定します。

[書式]
オブジェクト.TopMargin
オブジェクト.BottomMargin
オブジェクト.LeftMargin
オブジェクト.RightMargin
オブジェクト.TopMargin = 設定値
オブジェクト.BottomMargin = 設定値
オブジェクト.LeftMargin = 設定値
オブジェクト.RightMargin = 設定値


オブジェクトには、PageSetupオブジェクトを指定します。

設定値には、余白の大きさをポイント単位で指定します。

※用紙サイズを超える余白を設定すると、エラーが発生します。
※1ポイントは約0.0353cm、約1/72インチになります。
※ApplicationオブジェクトのCentimetersToPointsメソッド、InchesToPointsメソッドを使用すると、センチメートルの単位、インチの単位を、それぞれポイント単位に変換することができます。

例:
Sub Test()
  With Worksheets("Sheet1")
    .PageSetup.TopMargin = 30
    .PageSetup.BottomMargin = 20
    .PageSetup.LeftMargin = Application.CentimetersToPoints(1)
    .PageSetup.RightMargin = Application.InchesToPoints(1)
    .PrintPreview
  End With
End Sub
 
この例では、Sheet1ワークシートの上余白を30ポイント、下余白を20ポイント、左余白を1センチメートル、右余白を1インチ、にそれぞれ設定し、印刷プレビュー表示します。

ページの中央に印刷する
ページの中央に印刷するよう設定することができます。CenterHorizontallyプロパティは水平方向の中央に、CenterVerticallyプロパティは垂直方向の中央に、それぞれ印刷位置を設定します。

[書式]
オブジェクト.CenterHorizontally
オブジェクト.CenterVertically
オブジェクト.CenterHorizontally = 設定値
オブジェクト.CenterVertically = 設定値


オブジェクトには、PageSetupオブジェクトを指定します。

設定値には、TrueまたはFalseを設定します。Trueを設定すると印刷位置を中央に設定します。

※印刷される中央の位置は、上下左右の余白を除いた印刷領域の中央になります。したがって上下左右の余白が均等でない場合、ページの中央に正確に印刷されません。

例:
Sub Test()
  With Worksheets("Sheet1")
    .PageSetup.CenterHorizontally = True
    .PageSetup.CenterVertically = True
    .PrintPreview
  End With
End Sub

この例では、Sheet1ワークシートのページを水平方向、垂直方向それぞれの余白を除いた中央に、印刷位置を設定し、印刷プレビュー表示します。

ヘッダー・フッターを設定する
ヘッダー・フッターを設定することができます。LeftHeaderプロパティは左ヘッダーを、RightHeaderプロパティは右ヘッダーを、CenterHeaderプロパティは中央ヘッダーを、それぞれ設定します。
またLeftFooterプロパティは左フッターを、RightFooterプロパティは右フッターを、CenterFooterプロパティは中央フッターを、それぞれ設定します。

[書式]
オブジェクト.LeftHeader
オブジェクト.RightHeader
オブジェクト.CenterHeader
オブジェクト.LeftFooter
オブジェクト.RightFooter
オブジェクト.CenterFooter
オブジェクト.LeftHeader = 設定値
オブジェクト.RightHeader = 設定値
オブジェクト.CenterHeader = 設定値
オブジェクト.LeftFooter = 設定値
オブジェクト.RightFooter = 設定値
オブジェクト.CenterFooter = 設定値

オブジェクトには、PageSetupオブジェクトを指定します。

設定値には、ヘッダーまたはフッターに印刷したい文字列を、既定の書式コードで指定します。書式コードの主なものは次の通りです。

書式コード 内容
&nn nnに数値を指定することで、指定したフォントサイズで文字列を印刷します
&B 文字列を太字にします
&I 文字列を斜体にします
&L 文字列を左詰めにします
&C 文字列を中央揃えにします
&R 文字列を右詰めにします
&X 上付き文字にします
&Y 下付き文字にします
&U 文字列に下線を付けます
&E 文字列に二重下線を付けます
&S 文字列に取消線を付けます
&D 現在の日付を印刷します
&T 現在の時刻を印刷します
&F ファイル名を印刷します
&A シート名を印刷します
&P ページ番号を印刷します
&N すべてのページ数を印刷します
&P+<数値> ページ番号に指定した<数値>を加えた値を表示します
&P-<数値> ページ番号から指定した<数値>を引いた値を表示します
& "フォント名" 指定したフォントで文字列を印刷します
&& アンパサンド(&)を印刷します

例:
Sub Test()
  With Worksheets("Sheet1")
    .PageSetup.LeftHeader = "&B&14SampleList"
    .PageSetup.RightHeader = "&U&D"
    .PageSetup.CenterHeader = Range("A1").Value
    .PageSetup.LeftFooter = "&A"
    .PageSetup.RightFooter = "&""Verdana""Author"
    .PageSetup.CenterFooter = "&P/&N"
    .PrintPreview
  End With
End Sub

この例では、左ヘッダーに太字かつフォントサイズ14で"SampleList"の文字列を、右ヘッダーに下線付きで現在の日付を、中央ヘッダーにA1セルの内容を、
左フッターにシート名を、右フッターにVerdanaのフォントで"Author"の文字列を、中央フッターに"ページ番号/総ページ数"を、それぞれ設定し、印刷プレビュー表示します。

ワークシートの印刷を行う

印刷を実行する

印刷を実行するには、PrintOutメソッドを使用します。印刷を開始するページや終了するページ、印刷部数、印刷を行うプリンタ名などを指定することができます。

[書式]
オブジェクト.PrintOut(開始ページ,終了ページ,印刷部数,プレビューの有無,プリンタ名,ファイルに出力,部単位での印刷,出力先ファイル名)

オブジェクトには、Windowオブジェクト、Workbookオブジェクト、Worksheetオブジェクト、Chartオブジェクトを指定します。またSheetsコレクション、Worksheetsコレクション、Chartsコレクション、Rangeコレクションを指定することもできます。

開始ページ、終了ページには、印刷を開始するページ番号、終了するページ番号をそれぞれ指定します。開始ページを省略すると最初のページから、終了ページを省略すると最後のページまで、それぞれ印刷します。

印刷部数には、印刷する部数を数値で指定します。省略すると1が指定されます。

プレビューの有無には、TrueまたはFalseを指定します。Trueを指定すると印刷プレビュー表示をします。省略するとFalseが指定されます。

プリンタ名には、印刷を行うプリンタ名を指定します。省略することもできます。

ファイルに出力には、TrueまたはFalseを指定します。Trueを指定した場合、引数"出力先ファイル名"に出力先のファイル名を指定します。

部単位での印刷には、TrueまたはFalseを指定します。Trueを指定すると部単位で印刷を行います。

出力先ファイル名には、出力先のファイル名を指定します。引数"ファイルに出力"をTrueに指定する必要があります。省略すると、ファイルを選択するダイアログボックスが表示されます。

※対象となるオブジェクトがセル範囲の場合、選択されているセル範囲のみが印刷されます。複数のセル範囲が選択されている場合、セル範囲ごとに複数のページに印刷されます。

例:
Worksheets("Sheet1").PrintOut 2, 3, 4, False, "Printer A"

この例では、Sheet1ワークシートの、2ページ目から3ページ目を4部、"Printer A"のプリンタで印刷します。

※アクティブプリンタの名前を調べるには、ApplicationオブジェクトのActivePrinterプロパティを使用します。例えば、

Debug.Print Application.ActivePrinter

この場合、イミディエイトウィンドウにアクティブプリンタのプリンタ名が出力されます。アクティブプリンタとは、[コントロールパネル]の[プリンタとFAX]の中に表示されるプリンタのうち、"通常使うプリンタ"として設定されているチェックの付いたプリンタを指します。

PrintOutメソッドの引数"プリンタ名"を使用しなくても、次のようにすることでアクティブプリンタを変更して印刷することができます。

例:
Sub Test()
  Application.ActivePrinter = "Printer A on LPT1:"
  Worksheets("Sheet1").PrintOut
End Sub

この例では、2行目でアクティブプリンタを"Printer A on LPT1:"に変更しています。("on LPT1"はLPT1ポートを指します。ActivePrinterプロパティでは"プリンタ名 on ポート名:"と記述する必要があります)その後、Sheet1ワークシートを印刷し終了します。

アクティブプリンタを変更したのち、元のアクティブプリンタに戻したいときは次のようにします。

例:
Sub Test()
  Dim MyPrinter As String
  MyPrinter = Application.ActivePrinter
  Application.ActivePrinter = "Printer A on LPT1:"
  Worksheets("Sheet1").PrintOut
  Application.ActivePrinter = MyPrinter
End Sub

この例では、変数MyPrinterにアクティブプリンタの情報を格納、アクティブプリンタを変更して印刷したのちに最初に設定されていたアクティブプリンタ(変数MyPrinterの中身)に戻します。


以上で、ワークシートを印刷するコードの解説を終わります。

Excelのワークシートは大変優れた帳票作成ツールになります。今回解説したコードを利用することで、さらに便利にワークシートの印刷を行うことが可能でしょう。

ぜひ、マスターしてください。

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,