ExcelデータをPowerPointへ自動転記するVBA! 複数スライド対応可!

ExcelデータをPowerPointへ自動転記するVBA! 複数スライド対応可!

ExcelデータをPowerPointへ自動転記する方法を知りたいときはないでしょうか。

けど、そんな中で悩むことは、

・ExcelデータをPowerPointへ自動転記する方法がわからない
・ExcelデータをPowerPointの複数スライドに自動転記する方法がわからない

ですよね。

今回はそんなお悩みを解決する

・ExcelデータをPowerPointの複数スライドのタイトルと本文へ自動転記する方法

についてまとめます!

ExcelデータをPowerPointの複数スライドのタイトルと本文へ自動転記するイメージ

ExcelデータをPowerPointへ自動転記するイメージについて説明をします。

パワーポイントのテンプレートとなるファイルを用意します。

保存しファイル名とパスをメモします。

台帳となるExcelシートを用意し、スライド番号毎にタイトルと本文を入力、そしてメモしたテンプレートファイルのパスを入力します。

マクロを実行すると、

パワーポイントの各スライドにExcel台帳に入力したデータが反映されます!

スライドが大量にあるとき便利ですね!

それでは早速実装してためしてみましょう!

ExcelデータをPowerPointへ自動転記するための下準備

ExcelデータをPowerPointへ自動転記するための下準備をしていきましょう。

パワーポイントのテンプレートファイルを準備する

パワーポイントのテンプレートファイルを準備しましょう。

サンプルではパワーポイントの標準テンプレートを使っています。

表紙の他にコンテンツとなるスライドを作成し、保存します。

テンプレートファイルを表紙のスライドだけにすると、表紙が複製される形になるので、表紙以外にコンテンツスライドも追加するようお願いします。

Excel台帳ファイルを準備する

Excel台帳を作成し、一番目のシートにA列からスライド番号、タイトル、本文、そしてG1セルへテンプレートのファイルのパスを入力します。

 

サンプルは以下の通りです。

スライド番号 タイトル 本文
1 運用改善提案書 2023年4月3日
2 はじめに 運用で発生した課題について改善の提案をいたします。
3 課題 認識している課題については以下の通りです。
問い合わせの返信遅れ
依頼作業の遅れ
4 改善策 改善策は以下の通りです。
一次返信の自動化
依頼受け付けフォームの設置
5 対応スケジュール 対応スケジュールは以下の通りです。
1月:運用設計
2月:トライアル
3月:本運用適用

G1には表貼り付け先パワポファイルのパスを入力します。

テンプレパワポファイルのパス⇒ F:\test\PPTテンプレ.pptx

Excelからパワーポイントを操作できるよう設定する

ExcelからパワーポイントをVBAで操作できるよう設定をしていきましょう。

①Excelを起動し、「開発」タブをクリックします。

②VBEの画面が開いたら、メニューから「ツール」>「参照設定」を選択します。

③「Microsoft PowerPoint XX.X Object Library」を探してチェックボックスにチェックし「OK」をクリックします。

タカヒロ
タカヒロ
この設定がないと、マクロ実行後にエラーとなりますのでかならず設定するようお願いします。

ExcelデータをPowerPointの複数スライドのタイトルと本文へ自動転記する方法

サンプルコード

ExcelデータをPowerPointの複数スライドのタイトルと本文へ自動転記するサンプルコードは以下の通りです。

Sub パワーポイントへタイトルと本文を挿入する()
    Dim objPPTApp As Object
    Dim objPPTPres As Object
    Dim objPPTSlide As Object
    Dim objPPTLayout As Object
    Dim intlastRow As Integer
    Dim i As Integer
    Dim SlideNum As Integer
    Dim Title As String
    Dim Body As String
    
    'Excel台帳の1スライド目を設定します。
    With ThisWorkbook.Worksheets(1)
        
       ' PowerPointアプリケーションをセットします。
        Set objPPTApp = CreateObject("PowerPoint.Application")
        
        'Excel台帳のG1セルを元にPowerPointファイルを開きます。
        Set objPPTPres = objPPTApp.Presentations.Open(.Range("G1").Value)
    
        ' PowerPointアプリケーションを表示します。
        objPPTApp.Visible = True
        
        'ファイルパスを格納する列の範囲を取得します。
        intlastRow = .Cells(.Rows.Count, 1).End(xlUp).Row

        'Excel台帳の最終行数分処理を繰り返します。
        For i = 2 To intlastRow
            'Excel台帳側に入力されているタイトルと本文を取得します。
            SlideNum = .Cells(i, 1).Value
            Title = .Cells(i, 2).Value
            Body = .Cells(i, 3).Value
            
            'PowerPointにスライドを加えるか、既存スライドを使うか判定します。
            If SlideNum > objPPTPres.Slides.Count Then
                'PowerPointにスライドを加えます。
                Set objPPTLayout = objPPTPres.Slides(2).CustomLayout
                Set objPPTSlide = objPPTPres.Slides.AddSlide(SlideNum, objPPTLayout)
            Else
                'PowerPointの既存スライドを使います。
                Set objPPTSlide = objPPTPres.Slides(SlideNum)
            End If
            
            'スライドにタイトルと本文を挿入します。
            objPPTSlide.Shapes(1).TextFrame.TextRange.Text = Title
            objPPTSlide.Shapes(2).TextFrame.TextRange.Text = Body
            
        Next i
    End With
    
    'オブジェクトを開放します。
    Set objPPTApp = Nothing
    Set objPPTPres = Nothing
    Set objPPTSlide = Nothing
    Set objPPTLayout = Nothing

    MsgBox "Excel台帳からパワーポイントへタイトルと本文を挿入しました!" & Chr(10) & "OKであれば保存してください。"
End Sub

VBAの実装

VBAの実装方法については
VBAの実装手順
をご参照ください。

実行する

VBAを実行しましょう。

「Excel台帳からパワーポイントへタイトルと本文を挿入しました!OKであれば保存してください。」が表示されたら完了です。

パワーポイントをみてみましょう。

はい!パワーポイントへExcelに入力したタイトルと本文が転記されましたね!

タカヒロ
タカヒロ
マクロ実行直後はパワーポイントは保存されていませんので、問題なければ保存するようにしてください。

ExcelデータをPowerPointへ自動転記するVBAの説明

ExcelデータをPowerPointへ自動転記するVBAについて説明をします。

Excel台帳のG1セルを元にPowerPointファイルを開きます。

Set objPPTPres = objPPTApp.Presentations.Open(.Range("G1").Value)

PowerPointアプリケーションを表示します。

objPPTApp.Visible = True

ファイルパスを格納する列の範囲を取得します。

intlastRow = .Cells(.Rows.Count, 1).End(xlUp).Row

Excel台帳の最終行数分処理を繰り返します。

For i = 2 To intlastRow Next i

Excel台帳側に入力されているタイトルと本文を取得します。

SlideNum = .Cells(i, 1).Value
Title = .Cells(i, 2).Value
Body = .Cells(i, 3).Value

PowerPointにスライドを加えるか、既存スライドを使うか判定します。

If SlideNum > objPPTPres.Slides.Count Then

スライドがなければPowerPointにスライドを加えます。

Set objPPTLayout = objPPTPres.Slides(2).CustomLayout
Set objPPTSlide = objPPTPres.Slides.AddSlide(SlideNum, objPPTLayout)

スライドがあればPowerPointの既存スライドを使います。

Set objPPTSlide = objPPTPres.Slides(SlideNum)

スライドにタイトルと本文を挿入します。

objPPTSlide.Shapes(1).TextFrame.TextRange.Text = Title
objPPTSlide.Shapes(2).TextFrame.TextRange.Text = Body

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

ExcelデータをPowerPointの複数スライドのタイトルと本文へ自動転記する方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

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