「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"
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
- Newer:日付をスラッシュなしにするExcelマクロ
- Older:Excel VBAで図形の形状を変更する
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » PowerPoint VBAで特定フォルダーの画像を挿入する