【必読】パワポ本15選 👉

【パワポVBA】指定フォルダの画像を各スライドに一括挿入するマクロ

PowerPoint VBAを使い、指定フォルダの全画像を各スライドに一括挿入するマクロをご紹介します。

画像の拡張子は「jpg」「jpeg」「png」に対応しています。

コードは神AI「ChatGPT」で開発しました。ChatGPTについては、次の記事で解説しています。

神AI「ChatGPT」でパワポVBAを開発【始め方から解説】
ChatGPTとは、質問を投げると人工知能が回答してくれるチャットサービスです。Excelでの数式や…
スポンサーリンク
スポンサーリンク

指定フォルダの画像を各スライドに一括挿入するマクロ

Sub AddImagesToSlides()

    'PowerPointアプリケーションを開始
    Dim ppApp As PowerPoint.Application
    Set ppApp = New PowerPoint.Application

    '新しいプレゼンテーションを作成
    Dim ppPres As PowerPoint.Presentation
    Set ppPres = ppApp.Presentations.Add

    '指定のフォルダから画像を読み込む
    Dim folderPath As String
    folderPath = "C:¥MyPictures" '画像が保存されているフォルダのパス

    '拡張子の配列を定義
    Dim extensions() As Variant
    extensions = Array("jpg", "jpeg", "png")

    '各拡張子ごとに画像を読み込んでスライドに貼り付け
    Dim i As Integer
    For i = LBound(extensions) To UBound(extensions)
        '画像のファイル名を取得
        Dim fileName As String
        fileName = Dir(folderPath & "¥*." & extensions(i))

        '画像を1枚ずつ読み込んでスライドに貼り付け
        While fileName <> ""
            '新しいスライドを作成
            Dim ppSlide As PowerPoint.Slide
            Set ppSlide = ppPres.Slides.Add(ppPres.Slides.Count + 1, ppLayoutBlank)

            '画像を貼り付け
            ppSlide.Shapes.AddPicture folderPath & "¥" & fileName, msoFalse, msoTrue, 0, 0

            '次の画像のファイル名を取得
            fileName = Dir()
        Wend
    Next i

    'PowerPointを表示
    ppApp.Visible = True
    
End Sub

指定フォルダ内の全ての「jpg」「jpeg」「png」拡張子の画像を各スライドに貼り付けます。

folderPath = "C:¥MyPictures" '画像が保存されているフォルダのパス

「C:¥MyPictures」のコードを画像が格納されているフォルダまでのパスに置き換えてください。

パスの取得方法は「Shift」キーを押しながらフォルダを右クリック →「パスのコピー」で行います。

'画像を貼り付け
ppSlide.Shapes.AddPicture folderPath & "¥" & fileName, msoFalse, msoTrue, 0, 0

コード末尾の「0, 0」の値で画像を貼り付けるX座標とY座標の位置を指定できます。

マクロの使い方は、次の記事で解説しています。

PowerPointマクロ入門 | コピペで始める楽々コース
PowerPointでマクロを始めたいけど、難しそうでよく分からないという方向けの入門編です。PPD…

実行結果

一括挿入したい画像を一つのフォルダにまとめて格納します。

マクロを実行すると新規ファイルが作成され、フォルダ内の画像を各スライドに挿入してくれます。

画像の一括挿入は「フォトアルバム」機能でも行えます。

詳細は、次の記事で解説しています。

PowerPointで複数の画像をスライドに一括で挿入する3つの方法
PowerPointで複数の写真をスライドに一括で挿入したい時ありませんか?1枚ずつ挿入もできますが…