Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » PowerPoint VBAで特定フォルダーの画像を挿入する

PowerPoint VBAで特定フォルダーの画像を挿入する

動作検証バージョン:Windows 11 Home + 64bit PowerPoint バージョン 2412(ビルド18324.20012クイック実行)ベータチャネル

「vba パワポ 画像 貼り付け」
「powerpoint vba 画像 挿入」
といった検索キーワードで時折アクセスがあります。

PowerPoint VBAでスライドに画像を挿入するには、どのようなコードを書けばいいのかを調べていた方による検索でしょう。

[スポンサードリンク]

どこにあるどのような画像をどう挿入したいのかが、
「vba パワポ 画像 貼り付け」
「powerpoint vba 画像 挿入」
だけではわからないため、この記事では、特定のフォルダーに存在するJPEGファイルを、スライドに1枚ずつ挿入するPowerPointマクロをご紹介します。

特定フォルダーの画像を挿入するサンプルマクロ

以下のPowerPointマクロを実行すると、Cドライブtempフォルダーに存在する拡張子が「.jpg」のファイルが1枚ずつスライドに挿入されます。

Sub 指定フォルダーのJPGファイルを1枚ずつスライドに挿入する()

 Dim fol_path As String
 fol_path = "C:\temp"

 Dim f_name As String
 f_name = Dir(fol_path & "\*.jpg")
 
 Dim sld As Slide
 With Presentations.Add
  Do Until f_name = ""
   Set sld = .Slides.Add(.Slides.Count + 1, ppLayoutBlank)
   sld.Shapes.AddPicture _
     fol_path & "\" & f_name, _
     LinkToFile:=msoFalse, _
     SaveWithDocument:=msoTrue, _
     Left:=0, Top:=0
   f_name = Dir
  Loop
 End With
 
End Sub

サンプルマクロで行っている処理

主たる処理は、VBAのDir関数とDo Until~Loopです。

 Dim fol_path As String
 fol_path = "C:\temp"

 Dim f_name As String
 f_name = Dir(fol_path & "\*.jpg")
 
 Dim sld As Slide
 With Presentations.Add
  Do Until f_name = ""
   Set sld = .Slides.Add(.Slides.Count + 1, ppLayoutBlank)
   sld.Shapes.AddPicture _
     fol_path & "\" & f_name, _
     LinkToFile:=msoFalse, _
     SaveWithDocument:=msoTrue, _
     Left:=0, Top:=0
   f_name = Dir
  Loop
 End With

これは、他のライブラリを使わず指定したフォルダーの特定ファイルを順番に処理する、VBAの定番と言っていいコードです。

この処理で使うためのパスを、事前に変数に代入しています。

 Dim fol_path As String
 fol_path = "C:\temp\"

Do Until~Loopに入る前に、PresentationsコレクションのAddメソッドで、新規プレゼンテーションを作成しています。

 Dim sld As Slide
 With Presentations.Add
  Do Until f_name = ""

Do Until~Loop内では、SlidesコレクションのAddメソッドで、プレゼンテーションの末尾に空白スライドを挿入して、そのスライドを表すSlideオブジェクトを変数sldに代入しています。

  Do Until f_name = ""
   Set sld = .Slides.Add(.Slides.Count + 1, ppLayoutBlank)

その新規スライドに、ShapesコレクションのAddPictureメソッドを使って、スライドの左上に画像を挿入しています。

   sld.Shapes.AddPicture _
     fol_path & "\" & f_name, _
     LinkToFile:=msoFalse, _
     SaveWithDocument:=msoTrue, _
     Left:=0, Top:=0

画像の挿入が終わったら、VBAのDir関数を使って次のファイル名を取得しています。

   f_name = Dir
  Loop

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » PowerPoint VBAで特定フォルダーの画像を挿入する

Copyright © インストラクターのネタ帳 All Rights Reserved.

.