Программно добавить изображение в файл PowerPoint - PullRequest
3 голосов
/ 26 июля 2010

Есть ли способ программно добавить изображение в файл PowerPoint?

  1. Создайте файл, откройте файл
  2. Добавить изображение
  3. Закрыть файл

Мне нужно сделать это примерно с 1000 файлами PowerPoint.

Ответы [ 3 ]

3 голосов
/ 27 июля 2010

Возможно, вы захотите изучить использование FileSystemObject здесь для запуска кода отаку для каждого файла в определенной директории

<code>Dim objFSO As Object, objFile As Object, strPath As String, p as Presentation<br>
strPath = "C:\Wherever\"
Set objFSO = CreateObject("Scripting.FileSystemObject")<br>
If objFSO.FolderExists(strPath) Then
    For Each objFile In objFSO.GetFolder(strPath).Files
        If InStr(1, UCase(objFile.Name), ".JPG") + _
            InStr(1, UCase(objFile.Name), ".GIF") + _
            InStr(1, UCase(objFile.Name), ".PNG") + _
            InStr(1, UCase(objFile.Name), ".BMP") > 0 Then
            '# use Otaku's code above to add a presentation, the image, then close
            Set p = Presentations.Add(msoFalse)
            With p
                .Slides.Add Index:=1, Layout:=ppLayoutBlank
                .Slides(1).Shapes.AddPicture FileName:=strPath & objFile.Name, _
                    LinktoFile:=msoFalse, _
                    SaveWithDocument:=msoTrue, Left:=10, Top:=10
                 .SaveAs strPath & Left(objFile.Name, InStr(1, objFile.Name, ".") - 1)
                 .Close
            End With
            Set p = Nothing
        End If
    Next
End If
2 голосов
/ 27 июля 2010

Да, вы можете использовать что-то подобное в PowerPoint:

Sub CreatePresWithImage()
    Dim i As Integer
    Dim imagePath As String
    Dim savePath As String
    imagePath = "C:\Documents and Settings\XPMUser\My Documents\My Pictures\"
    savePath = "C:\Documents and Settings\XPMUser\My Documents\"
    Dim p As Presentation
    For i = 0 To 999
        Set p = Presentations.Add(msoFalse)
        With p
            .Slides.Add Index:=1, Layout:=ppLayoutBlank
            .Slides(1).Shapes.AddPicture FileName:=imagePath & "HueTint-30.png", _
                                            LinktoFile:=msoFalse, _
                                            SaveWithDocument:=msoTrue, Left:=10, Top:=10
            .SaveAs savePath & "Sample" & i + 1
            .Close
        End With
        Set p = Nothing
    Next
End Sub

Вам нужно будет управлять частью изображения (в .Slides(1).Shapes.AddPicture FileName:= выше), чтобы каждый раз получать нужные изображения. В этой же процедуре вы можете установить размер изображения (Width и Height - они необязательны) и местоположение (Left и Top).

2 голосов
/ 27 июля 2010
...