PowerPoint VBAでスライドを追加するAddSlideの使い方!注意点も!

PowerPoint VBAでスライドを追加するAddSlideの使い方!注意点も!

PowerPoint VBAでスライドを追加するAddSlideの使い方を知りたいときはないでしょうか。

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

・PowerPoint VBAでスライドを追加するAddSlideの使い方がわからない
・PowerPoint VBAのAddSlideでスライドを追加したがうまくいかない

ですよね。

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

・PowerPoint VBAでスライドを追加するAddSlideの使い方
・AddSlideメソッドを使う上での注意点

についてまとめます!

PowerPoint VBAでスライドを追加する方法

PowerPoint VBAで新しいスライドを追加するには、AddSlideメソッドを使用します。
AddSlideメソッドは、スライドが追加されるスライドの位置やスライドのテンプレートを指定することができます。

AddSlideメソッドの構文

AddSlideメソッドの構文です。

expression.AddSlide(Index, CustomLayout)

expressionは、必須のオブジェクトです。PresentationオブジェクトまたはSlideRangeオブジェクトを指定します。

Indexは、新しいスライドが追加される位置を示す数値です。例えば、2を指定すると、2番目のスライドの後に新しいスライドが追加されます。
必須入力です。

CustomLayoutは、新しいスライドに使用するスライドのテンプレートを示すCustomLayout型の値です。
必須入力です。

参考:https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.slides.addslide

AddSlideメソッドでスライドを追加するための下準備

AddSlideメソッドでスライドを追加するための下準備をしていきましょう。

テンプレートとなるパワーポイントファイルを用意

まずはテンプレートとなるパワーポイントファイルを用意します。
表紙の他に中ページを追加した2スライド構成となります。

タカヒロ
タカヒロ
複製の対象スライドは2スライド目の中ページテンプレートとなります。

情報をまとめるExcelファイルを用意

今回はExcelからVBAを実行します。
実行元のExcelシートのセルにパワーポイントのスライド生成に必要な情報を入力していきます。

B1セルに必要なスライド数を、B2セルにテンプレートとなるパワーポイントファイルのパスを入力します。

タカヒロ
タカヒロ
今回はスライドを生成した後のパワーポイントファイルの保存は行いません。もし生成したパワーポイントファイルが必要であれば別名で保存をするようお願いします。

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

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

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

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

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

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

PowerPointのスライドを追加するVBA

サンプルコード

PowerPoint VBAでスライドを追加するサンプルコードは以下の通りです。

Sub 新しいスライドを追加する()
    Dim objPPTApp As PowerPoint.Application
    Dim objPPTPres As PowerPoint.Presentation
    Dim objPPTSlide As PowerPoint.Slide
    Dim objPPTLayout As Object
    Dim i As Integer
    
    'Excel台帳の1スライド目を設定します。
    With ThisWorkbook.Worksheets(1)
        
       ' PowerPointアプリケーションをセットします。
        Set objPPTApp = CreateObject("PowerPoint.Application")
        
        'Excel台帳のG1セルを元にPowerPointファイルを開きます。
        Set objPPTPres = objPPTApp.Presentations.Open(.Range("B2").Value)
    
        ' PowerPointアプリケーションを表示します。
        objPPTApp.Visible = True
        
        'Excel台帳記載のセル生成数分処理を繰り返します。
        For i = 1 To .Range("B1").Value
            
            'テンプレートとなるスライドからレイアウトを取得します。
            Set objPPTLayout = objPPTPres.Slides(2).CustomLayout
            'PowerPointに2ページ以降にスライドを加えます。
            Set objPPTSlide = objPPTPres.Slides.AddSlide(i + 2, objPPTLayout)
        Next i
    End With

End Sub

VBAの実装

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

実行する

VBAを実行し表示されたパワーポイントをみてみましょう。

はい!パワーポイントへExcelに入力した数分のスライドが複製されましたね!

AddSlideメソッドを使う上での注意点

AddSlideメソッドを使う上での注意点について説明をします。

表紙スライドをテンプレートとして選択しないこと

表紙スライドをテンプレートとして選択しないよう注意してください。
表紙スライドをテンプレートとして選択した場合は表紙スライドが複製されてしまいます。

Set objPPTLayout = objPPTPres.Slides(1).CustomLayout

CustomLayoutは必ず引数指定する

CustomLayoutは省略できませんので、必ず引数に指定するよう注意しましょう。
省略した場合はコンパイルエラー「引数は省略できません」と表示されます。

Set objPPTSlide = objPPTPres.Slides.AddSlide(i + 2)

VBAの実装手順

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

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

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

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

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

こちらで完了です。

VBAを実行する

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

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

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

さいごに

いかがでしょうか。

今回は、

・PowerPoint VBAでスライドを追加するAddSlideの使い方
・AddSlideメソッドを使う上での注意点

についてまとめました。

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



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

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









コメントを残す

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