要約:Excelのマクロを使用してPowerPointの雛型ファイルを開き、特定の文字列を代入してPDFとして保存する方法を紹介しています。目的は、複数のクライアント用に同じ資料の表紙にある会社名を一括で変更し、PDF化することです。具体的なVBAコードとその実行手順が示されています。
キーワード:
#ExcelVBA #PowerPointVBA #マクロ #VBA #PDF保存 #自動化 #差し込み印刷 #テンプレート #プログラミング
1.やりたいこと
知恵袋の質問
detail.chiebukuro.yahoo.co.jp
より
>同じ資料を複数のクライアントに使用するため、
>元のファイルから表紙の先方会社名を一社一社変更し、
>PDF化しています。>先方会社名リスト(Excel?)から表紙の宛先を一括変更し、
>それぞれPDFに変換する事は可能でしょうか?
youtu.be
https://youtu.be/9iLevOxJOoU
目次
00:00 1.やりたいこと
01:08 2.実行結果を先に見せる
03:53 3.仕組みの解説
12:44 4.ソースコードの解説
5.繰り返し、作成処理を実演する
19:30 5.1 企画書、ひな型を修正して、走らせてみる
26:30 5.2 1枚の宛先違いの案内状や修了証書など
6.おわりの挨拶
Excel設定と入力シートのイメージ:
2.実行結果を先に見せる
先に、結果
https://www.youtube.com/watch?v=9iLevOxJOoU&t=68
を見せる
3.仕組みの解説
03:53 https://www.youtube.com/watch?v=9iLevOxJOoU&t=233
①雛型ファイルを開き
B2のExcelと同じフォルダのPowerPointファイルを開きます
②文字列をシェイプに代入
シェイプに代入するには、ページとシェイプの名前が必要です。
Set ppShape = ppプレゼン.Slides(ppPAGE).Shapes(ppTEXTNAME)
'↑のB3:PageとB4:テキストボックス名でセット位置を決める
あとは、B列の値を代入する
'ppテキストにExcel側のB列のデータをセットする
ppShape.TextFrame.TextRange.Text = Cells(nROW, "B").Text
③PDF保存する
ActivePresentation.Export "D:\2024\test240522", "PDF"
で、PDF保存が可能なので、
A列のファイル名を使用して、作成する
4.ソースコード
ExcelからテンプレPowerPointを開き データセット後 別名保存する 差し込み印刷っぽいデータ流し込み処理
ExcelからテンプレPowerPointを開き データセット後 別名保存する 差し込み印刷っぽいデータ流し込み処理をマクロで作成する ひな型パワポにデータをセットする - YouTube
↑が似ている処理かなぁ。
これ↑を、PDF保存に変えただけです
12:44 コード解説を開始
https://www.youtube.com/watch?v=9iLevOxJOoU&t=764
Option Explicit 'B2のExcelと同じフォルダのPowerPointファイル 'B3で指定したスライドページの 'B4名前のテキストボックスにB10列~データセット 'セット後、A10列~の名前で上書き保存する Sub ExcelからPowerPointひな型にデータセット後PDF保存240522() '入力テンプレ:パワポのファイルを開く Dim ppApp As Object 'PowerPoint.Application Set ppApp = CreateObject("PowerPoint.Application") ppApp.Visible = True '可視にする 'いつもActivePresentationでやってるけど、たまには変数を使用 Dim strひな型FILE As String strひな型FILE = ThisWorkbook.Path & "\" & Range("B2") 'フルパス作成 Dim ppプレゼン As Object 'PowerPoint.Presentation pp:プレゼンテーション Set ppプレゼン = Nothing '初期化、エラーチェックもかねて On Error Resume Next '↓でSet 取得エラー時に次へ ファイルが開けなかった時 Set ppプレゼン = ppApp.Presentations.Open(strひな型FILE) 'B2のファイル名を開く On Error GoTo 0 'エラーを元に戻す※これを忘れると、デバッグ時にハマるから注意 '↑単純に、.Open "ファイル名" で開いただけです If ppプレゼン Is Nothing Then MsgBox "B2パワポのファイル名、パスを確認してください", vbExclamation Exit Sub End If Dim ppPAGE As Integer 'セットする pp:スライドページ数 ppPAGE = Range("B3") 'B3の値を使用 Dim ppTEXTNAME As String 'セットする pp:テキストボックス名 ppTEXTNAME = Range("B4") 'B4の値を使用 'ループ処理でパワポファイルを作成する Dim nROW As Integer 'Excle:指示パラメーターの行 Dim ppShape As Object 'PowerPoint.Shape パワポのシェイプ、テキスト、図形ほか Dim strWORK As String Dim strFILENAME As String '保存ファイル名をPath付きで作成する 'ExcelのA10~にある指示データがなくなるまでループしたいので For nROW = 10 To 999 'また、固定のループで↓の空白で抜けるループかよ If Len(Trim(Cells(nROW, "A"))) = 0 Then Exit For 'A列の保存名が空白の時ループを抜ける Set ppShape = Nothing 'エラーチェックも兼ねて、初期化 On Error Resume Next '↓でSet 取得エラー時に次へ ページかテキストボックス名が間違えている時 Set ppShape = ppプレゼン.Slides(ppPAGE).Shapes(ppTEXTNAME) '↑のB3:PageとB4:テキストボックス名でセット位置を決める On Error GoTo 0 'エラーを元に戻す※これを忘れると、デバッグ時にハマるから注意 If ppShape Is Nothing Then 'ページかテキスト名がミスっていたら strWORK = "エラー パワポのpageかテキスト名が見つかりません、確認してください" MsgBox strWORK, vbExclamation Exit Sub End If 'ppテキストにExcel側のB列のデータをセットする ppShape.TextFrame.TextRange.Text = Cells(nROW, "B").Text DoEvents 'A列の名前で上書き保存する、ここでは、エクセルと同じPathに保存 strFILENAME = ThisWorkbook.Path & "\" & Cells(nROW, "A").Text ppプレゼン.Export strFILENAME, "PDF" 'PDF出力する DoEvents ' 1秒停止 Call Application.Wait(Now + TimeValue("00:00:01")) Next nROW 'pp側の後始末、パワポを閉じる DoEvents ppApp.Quit 'パワポアプリを閉じる ' 1秒停止 Call Application.Wait(Now + TimeValue("00:00:01")) DoEvents Set ppプレゼン = Nothing Set ppApp = Nothing MsgBox "処理終了、確認してね" End Sub
5.繰り返し、作成処理を実演する
シートをコピーしてから、実行すると便利かも?
5.1 企画書、ひな型を修正して、走らせてみる
19:30 ~
https://www.youtube.com/watch?v=9iLevOxJOoU&t=1170
ダミーの会社名:
サンライズエレクトロニクス
ブルーオーシャンシッピング
グリーンフォレスト製紙
レッドフレーム建設
ゴールデンフィールド農業
シルバーライトテクノロジー
ホワイトクラウド航空
ブラックマウンテン鉱業
ピンクペタル化粧品
オレンジバレー食品
5.2 1枚の宛先違いの案内状や修了証書など
26:30 ~
https://www.youtube.com/watch?v=9iLevOxJOoU&t=1590
修了証明.pptx
ダミーの新人研修終了者名:
6.おわりの挨拶
こんな感じで、ExcelからPowerPointへセット可能なので、
アレンジして使ってみてください。
作業軽減のヒントとなれば、幸いです。
再生リストの紹介:ほかにも差し込み印刷をマクロで作成しているので、下記の再生リストを見て笑ってください
https://www.youtube.com/playlist?list=PL8vZhsyiiFhtDYDOdz94s6bQ54vwPRN-3
↑中途半端に終わっている感じですが、処理のヒントとなれば・・・
YouTubeの概要・説明欄の内容に基づいて、以下の情報を作成しました。
1. 要約:
このビデオでは、Excelのマクロを使用してPowerPointの雛型ファイルを開き、特定の文字列を代入してPDFとして保存する方法を紹介しています。目的は、複数のクライアント用に同じ資料の表紙にある会社名を一括で変更し、PDF化することです。具体的なVBAコードとその実行手順が示されています。
2. キーワード:
Excel, PowerPoint, マクロ, VBA, PDF保存, 自動化, データセット, 差し込み印刷, テンプレート, プログラミング
3. タイトル案:
- ExcelマクロでPowerPoint資料を自動更新&PDF化!
- 一括で会社名を変更!ExcelからPDFへの効率的な変換法
- VBA活用!PowerPointの雛型をカスタマイズしてPDF出力
4. 似ている単語のペア:
- Excelとエクセル
- VBAとビジュアルベーシック
- マクロと自動化
- PowerPointとパワーポイント
- PDF保存とPDFエクスポート
- データセットとデータ入力
- 差し込み印刷とメールマージ