“如何制作”;在VBA Powerpoint中选择保存对话框的位置;

“如何制作”;在VBA Powerpoint中选择保存对话框的位置;,vba,vb6,powerpoint,savefiledialog,Vba,Vb6,Powerpoint,Savefiledialog,我搜索了一种方法,当按下幻灯片上的操作按钮时,在幻灯片放映模式下将当前幻灯片另存为图片。这就是我最后想到的: `Sub SaveCurrentSlideAsJpg()` Dim imagePath As String Dim slideNum As Integer imagePath = "C:\Users\XXXXX\Pictures\Slides\" slideNum = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex

我搜索了一种方法,当按下幻灯片上的操作按钮时,在幻灯片放映模式下将当前幻灯片另存为图片。这就是我最后想到的:

`Sub SaveCurrentSlideAsJpg()`
Dim imagePath As String  
Dim slideNum As Integer
 imagePath = "C:\Users\XXXXX\Pictures\Slides\"
 slideNum = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex

  ' first check if this already exists then delete it
  If Dir(imagePath & ActivePresentation.Name & "_" & slideNum & ".jpg") <> "" 
Then
    Kill imagePath & ActivePresentation.Name & "_" & slideNum & ".jpg"
  End If

  ' now save the slide
  ActivePresentation.SlideShowWindow.View.Slide.Export _
    FileName:=imagePath & ActivePresentation.Name & "_" & slideNum & ".jpg", _
    FilterName:="JPG"

End Sub
`Sub-SaveCurrentSlideAsJpg()`
将imagePath设置为字符串
Dim slideNum作为整数
imagePath=“C:\Users\XXXXX\Pictures\Slides\”
SlideEnum=ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
'首先检查此项是否已存在,然后将其删除
If Dir(imagePath&ActivePresentation.Name&“&slideNum&“.jpg”)“”
然后
Kill imagePath&ActivePresentation.Name&“_”&slideNum&“.jpg”
如果结束
“现在保存幻灯片
ActivePresentation.SlideShowWindow.View.Slide.Export_
文件名:=imagePath&ActivePresentation.Name&“”&slideNum&“.jpg”_
过滤器名称:=“JPG”
端接头

这很好,只是它会保存到我电脑上的默认位置。我会将它提供给其他人,我需要一个对话框,每当他们尝试保存时会弹出,询问他们保存到哪里。我所有的尝试都没有成功。如果有人能帮我,我将不胜感激。谢谢

您可以使用此功能选择文件夹:

Function BrowseForFolder(dialogTitle As String) As String
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    With fd
        .Title = dialogTitle
        .Show
        If .SelectedItems.Count = 0 Then
            ' Browsing cancelled by user.
            BrowseForFolder = ""
        Else
            BrowseForFolder = .SelectedItems.Item(1)
        End If
    End With
End Function
因此,您可以执行以下操作,而不是硬编码
imagePath

imagePath = BrowseForFolder("Save image in this folder...")