もめんの格闘日記

主にPowerPointを中心としたPCのTips的なものを書いていく予定です。

【PowerPointマクロ】印刷に関する操作(印刷、印刷プレビューの表示等)

f:id:momen40:20180930163146j:plain

Photo by rawpixel on Unsplash

今回は印刷関連の操作について書きたいと思います。

関数の使い方を列挙していますが、引数はよく使うであろうものだけを記載しているので、詳しく知りたい方はMSDNとかで調べて下さい。

では、どうぞ。

(PowerPoint2007で動作確認しています)

 

印刷する

ActivePresentation.PrintOut

おそらく通常使用するプリンターで印刷します。問答無用で印刷する為、後述するopitionsで設定を変えてから印刷するのがいいと思います。または、印刷プレビューを表示してアナログで設定するのがいいと思います。

後述のoptionsで何も変えなれけば、デフォルトか前回印刷時の設定が反映されます。

 

印刷プレビューを表示する

ActiveWindow.ViewType = ppViewPrintPreview

印刷プレビューが表示されます。

ちなみにActiveWindow.ViewType = ppViewSlideMasterとするとスライドマスターが表示されます。他にもViewTypeには色々な引数が存在します。

 

用紙サイズに合わせて拡大・縮小する

ActivePresentation.PrintOptions.FitToPage = msoTrue

用紙サイズに合わせると、ページ設定が4:3になっているとスライドの端が切れる可能性があるので注意して下さい。また、図形等の大きさがPowerPoint上での大きさから変わりますので、そちらもご注意下さい。

msoFalseにすると拡大・縮小しません。

 

現在のスライドを印刷する

ActivePresentation.PrintOptions.RangeType = ppPrintCurrent

 

選択スライドを印刷する

ActivePresentation.PrintOptions.RangeType = ppPrintSelection

 

スライドに枠を付けて印刷する

ActivePresentation.PrintOptions.FrameSlides = msoTrue

 

カラーで印刷する

ActivePresentation.PrintOptions.PrintColorType = ppPrintColor

一応これでPowerPoint上ではカラーで印刷するつもりになっていますが、結局はプリンターの詳細設定等に入っている設定が優先される気がするので、どこまで有効かはわかりません。

白黒、グレースケールの設定もできます。

 

印刷設定の変更、印刷実行例

下のコードでは、用紙サイズに合わせて拡大・縮小して、カラー、現在のスライドを枠付きで印刷します。

Sub sample()

With ActivePresentation
  .PrintOptions.FitToPage = msoTrue
  .PrintOptions.PrintColorType = ppPrintColor
  .PrintOptions.RangeType = ppPrintCurrent
  .PrintOptions.FrameSlides = msoTrue
  .PrintOut
End With

End Sub

 

印刷設定を変更した上で印刷プレビューを表示するには、下記にようになります。

Sub sample()

With ActivePresentation
  .PrintOptions.FitToPage = msoTrue
  .PrintOptions.PrintColorType = ppPrintColor
  .PrintOptions.RangeType = ppPrintCurrent
  .PrintOptions.FrameSlides = msoTrue
End With

ActiveWindow.ViewType = ppViewPrintPreview

End Sub

最終的には印刷プレビューからプリンターの詳細設定を変更するのが安パイだと僕は思っています。

 

 

ご紹介する内容は以上になります。

PowerPointのスライドサイズの設定は、デフォルトが4:3になっている為、A4用紙に印刷する際は注意が必要です。設定の内容を理解した上で印刷しないと、スライドの端が印刷されていなかったり、図の大きさが思った長さでなくて、困惑する原因となります。

今回はこれで終わりです。

ありがとうございました。