PowerPoint のスライド毎に画像を貼り付けていくマクロ
2007-01-27-1
			  数百枚ある写真を 1 枚 1 枚 PowerPoint に貼り付けていくという気の遠くなる作業を頼まれたので作成.
Option Explicit
Public Sub addPhotoParPage()
    Dim i As Integer
    Dim strPath As String
    Dim objFileSystem As Object
    Dim objFolder As Object
    Dim objFile As Object
    strPath = BrowseForFolder()
    If strPath = "" Then
        Exit Sub
    End If
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder(strPath)
    i = 0
    For Each objFile In objFolder.Files
        ' スライドの追加
        ActivePresentation.Slides.Add( _
            Index:=ActivePresentation.Slides.Count + 1, _
            Layout:=ppLayoutText).Select
        ' 画像の挿入
        ActiveWindow.Selection.SlideRange.Shapes.AddPicture( _
            FileName:=objFile.Path, _
            LinkToFile:=msoFalse, _
            SaveWithDocument:=msoTrue, _
            Left:=0, _
            Top:=0).Select
        ' 50 回に一回 DoEvents 発生
        i = i + 1
        If i Mod 50 = 0 Then
            DoEvents
        End If
    Next
    Set objFile = Nothing
    Set objFolder = Nothing
    Set objFileSystem = Nothing
End Sub
Private Function BrowseForFolder(Optional varRoot As Variant) As String
    Dim objFolder As Object
    ' フォルダ選択ダイアログを表示
    Set objFolder = CreateObject("Shell.Application").BrowseForFolder( _
                                 0, _
                                 "画像があるフォルダを選択してください", _
                                 &H11, _
                                 varRoot)
    ' 選択内容を取得
    If Not (objFolder Is Nothing) Then
        BrowseForFolder = objFolder.Items.Item.Path
    Else
        BrowseForFolder = ""
    End If
    Set objFolder = Nothing
End Function

		
		
		
		
	


