Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Powerpoint宏无法用于幻灯片放映_Vba_Powerpoint - Fatal编程技术网

Vba Powerpoint宏无法用于幻灯片放映

Vba Powerpoint宏无法用于幻灯片放映,vba,powerpoint,Vba,Powerpoint,有人能帮我解决这个问题吗。我找到了一个脚本,可以从PowerPoint的第一页中拍摄快照。当我在普通视图下运行宏时,它会工作。但当我使用动作按钮(将其超链接到已创建的宏)并在幻灯片中单击它时,没有动作。 我希望每次单击幻灯片放映上的“操作”按钮时,它都能从演示文稿视图中拍摄快照。。但什么都没有 这是脚本(我没有任何编程知识) Sub-SaveCurrentSlideAsJpg() 将imagePath设置为字符串 Dim slideNum作为整数 imagePath=“C:\JPG\” Slid

有人能帮我解决这个问题吗。我找到了一个脚本,可以从PowerPoint的第一页中拍摄快照。当我在普通视图下运行宏时,它会工作。但当我使用动作按钮(将其超链接到已创建的宏)并在幻灯片中单击它时,没有动作。 我希望每次单击幻灯片放映上的“操作”按钮时,它都能从演示文稿视图中拍摄快照。。但什么都没有

这是脚本(我没有任何编程知识)

Sub-SaveCurrentSlideAsJpg()
将imagePath设置为字符串
Dim slideNum作为整数
imagePath=“C:\JPG\”
SlideEnum=ActiveWindow.Selection.SlideRange(1).SlideIndex
If Dir(imagePath&ActivePresentation.Name&“&slideNum&“.jpg”)“”
然后
Kill imagePath&ActivePresentation.Name&“_”&slideNum&“.jpg”
如果结束
ActivePresentation.Slides(slideNum).Export_
文件名:=imagePath&ActivePresentation.Name&“”&slideNum&“.jpg”_
过滤器名称:=“JPG”
端接头

如果您在幻灯片放映过程中引用了
幻灯片索引
,您可以这样做:

slideNum=ActivePresentation.SlideShowWindow.View.Slide.SlideIndex

以下是完整的代码,稍作修改:

Sub SaveCurrentSlideAsJpg()
    Dim imagePath As String
    Dim slideNum As Integer
    Dim fullJpgName As String

    imagePath = "C:\JPG\"

    slideNum = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
    fullJpgName = imagePath & ActivePresentation.Name & "_" & slideNum & ".jpg"

    If Dir(fullJpgName) <> "" Then
        Kill fullJpgName
    End If

    ActivePresentation.Slides(slideNum).Export _
        FileName:=fullJpgName, FilterName:="JPG"
End Sub
Sub-SaveCurrentSlideAsJpg()
将imagePath设置为字符串
Dim slideNum作为整数
将fullJpgName设置为字符串
imagePath=“C:\JPG\”
SlideEnum=ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
fullJpgName=imagePath&ActivePresentation.Name&“\u”&slideNum&“.jpg”
如果Dir(fullJpgName)“,则
杀了我
如果结束
ActivePresentation.Slides(slideNum).Export_
文件名:=fullJpgName,过滤器名:=“JPG”
端接头

谢谢您的重播,,,,请多帮我一点忙。。。我在topI上详细描述了我的问题,正如您所描述的,我使用操作按钮测试了这个问题,并且能够在演示模式下导出JPG。如果这对您不起作用,我将添加
Debug.Print slideNum
Debug.Print fullJpgName
,以确保它们完全符合您的期望。感谢您的重播,但仍然存在一个问题。在幻灯片放映中,当我单击指向此宏的超链接的操作按钮时,它会从普通视图中拍摄一张照片并将其保存到“c:\JPG”。。。我想从幻灯片演示中拍照。例如,在幻灯片放映中,当我在一个矩形上单击时,它的颜色将发生变化,我在powerpoint中使用动画进行设置。所以在那之后,当我点击“动作”按钮时,我希望用新的颜色从更改过的页面中拍摄一张照片。。。但是,如果将最后一行更改为
ActivePresentation.SlideShowWindow.View.Slide.Export FileName:=fullJpgName,FilterName:=“JPG”
,它会从普通视图中再次拍照,您会得到想要的结果吗?通过此更改,它会再次从普通视图中拍照。也许我必须找到一个宏来像PrtScr(键盘上的键)那样拍照,然后将它保存在目标文件夹的文件中。
Sub SaveCurrentSlideAsJpg()
    Dim imagePath As String
    Dim slideNum As Integer
    Dim fullJpgName As String

    imagePath = "C:\JPG\"

    slideNum = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
    fullJpgName = imagePath & ActivePresentation.Name & "_" & slideNum & ".jpg"

    If Dir(fullJpgName) <> "" Then
        Kill fullJpgName
    End If

    ActivePresentation.Slides(slideNum).Export _
        FileName:=fullJpgName, FilterName:="JPG"
End Sub