PowerPoint VBA: как сохранить изображение в определенном формате файла, а не всю презентацию? - PullRequest
1 голос
/ 18 января 2011

Я использую VBA в PowerPoint. Я пытаюсь сжать оригинальные файлы изображений из указанной папки в меньший размер. Я смог добиться этого. Однако я хочу сохранить новое сжатое изображение в папке назначения.

Следующий код сохранит презентацию или слайд с изображением. Но я хочу только картинку. Я почти уверен, что должен использовать ActivePresentation.SaveAs. Но это только позволит мне сохранить слайд. Как я могу сохранить только картинку, а не слайд?

Кроме того, у меня возникает другая проблема при попытке сохранить измененное изображение. Сохраняет презентацию в папке в месте назначения с именем файла «Slide1.bmp». Есть идеи, почему и как я могу это изменить?

Dim strSrcPath As String, strDestPath As String
Dim strSrcPic As String
Dim objPic As Shape
Dim x as Integer

strSrcPath = "C:\Temp\Pics\In\"
strDestPath = "C:\Temp\Pics\Out\"

strSrcPic = Dir(strSrcPath)    

Do While strSrcPic <> ""
    x = x + 1
    Set objPic = ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:=strSrcPath & strSrcPic, _
        LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=0, Top:=0, Width:=100, _
        Height:=100)
    With objPic
        .ScaleHeight 1, msoTrue
        .ScaleWidth 1, msoTrue
    End With

    objPic.Select

    ActivePresentation.SaveAs _
        FileName:=strDestPath & "ModPicture(" & x & ").bmp", _
        FileFormat:=ppSaveAsBMP, EmbedTrueTypeFonts:=msoFalse
    objPic.Delete
    strSrcPic = Dir    'Get next entry.
Loop

1 Ответ

1 голос
/ 18 января 2011

Спасибо @JSRWilson за следующий ответ:

"Вы должны щелкнуть правой кнопкой мыши в View> Object Browser >> Show Hidden Members Предполагая, что objPic все еще является ссылкой на сжатую картинку

objPic.Export(strDestPath & "& "ModPicture(" & x & ").bmp", ppSaveAsBMP) "

...