PowerPointで差し込み印刷

Pocket

Wordには差し込み印刷という機能がありますが、PowerPointにはありません。
VBA(マクロ)を使ってExcelのデータをPowerPointに差し込んで保存する方法を考えました。
一応、動きましたので、自分のメモとして残しておきます。
PowerPoint2013、Excel2013で確認しました。

PowerPointで元となるファイルを作成

PowerPointでひな形となるファイルを作成します。
情報を差し込みたい箇所にテキストボックスをセットします。適当なテキストを入力しておきます。パワポは空のテキストボックスは自動的に削除されてしまうようです。

ここでは次のようなファイルを作ることにします。

1枚目のスライドに「テキスト ボックス 3」という名前のテキストボックスをセット。
2枚目のスライドに「テキスト ボックス 5」という名前のテキストボックスをセット。

なおテキストボックスの名前は、そのテキストボックスを選択した状態で、メニューの 書式 - 配置 - オブジェクトの選択と表示 を選択すると、右側に表示されます。
適当な名前で保存しておいてください。ここでは「パワポ差込.pptx」とします。

Excelで差し込みデータを準備

Excelで差し込むためのデータを準備します。

ここでは次のようなデータを準備することにします。

powerpoint

1枚目のスライドのテキストボックスに「場所」、2枚目のスライドのテキストボックスに「チーム」を差し込むことにします。
シート名は「Sheet1」とします。
なおExcelマクロ有効ブック(xlsm)で保存しておいてください。ここでは「パワポ差込.xlsm」とします。

VBA

次のようなコードを「パワポ差込.xlsm」の標準モジュールに書きます。
※Alt+F12でVBエディタを開き左側のプロジェクトエクスプローラで該当するVBAProjectを右クリックし挿入、標準モジュールを選択し右側に書く。

Sub パワポ差込保存()
    Const my_folder = "C:\\data\"
    arrs = Worksheets("Sheet1").Range("A2:C5").Value
    Set my_application = CreateObject("PowerPoint.Application")
    Set my_presentation = my_application.ActivePresentation
    For i = 1 To UBound(arrs, 1)
        my_presentation.Slides(1).Shapes("テキスト ボックス 3").TextFrame.TextRange.Text = arrs(i, 2)
        my_presentation.Slides(2).Shapes("テキスト ボックス 5").TextFrame.TextRange.Text = arrs(i, 3)
        my_presentation.SaveAs my_folder & "file" & arrs(i, 1)
    Next
End Sub

my_folderは差し込んだ後のPowerPointのファイルが保存されるフォルダです。
「Sheet1」シートの「A2:C5」の範囲のデータを配列に取り込みます。
my_applicationはアプリケーション(PowerPoint)、my_presentationは現在、開いているPowerPointになります。
ForNextで、指定した範囲の各行について処理します。
1枚目のスライド(Slides(1))のテキストボックス(Shapes("テキスト ボックス 3"))に「場所」(arrs(i, 2))をセットします。
2枚目のスライド(Slides(2))のテキストボックス(Shapes("テキスト ボックス 5"))に「チーム」(arrs(i, 3))をセットします。
ファイル名を「file」+「整理番号」として保存します。
これを繰り返します。
処理が完了するとmy_folderで指定したフォルダにPowerPointのファイルが保存されます。

使い方

「パワポ差込.pptx」を開きます。PowerPointはこれだけを開き、他のファイルは閉じます。
「パワポ差込.xlsm」を開き、マクロ「パワポ差込保存」を実行します。
「パワポ差込.pptx」にテキストがセットされ別名で保存されます。これが繰り返されます。

関連記事

[ 2016年8月10日 | カテゴリー: マイクロソフト | タグ: , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報