Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Image 如何通过VBA将Powerpoint 2013中的嵌入图像保存到本地磁盘?_Image_Vba_Powerpoint - Fatal编程技术网

Image 如何通过VBA将Powerpoint 2013中的嵌入图像保存到本地磁盘?

Image 如何通过VBA将Powerpoint 2013中的嵌入图像保存到本地磁盘?,image,vba,powerpoint,Image,Vba,Powerpoint,我在Microsoft Powerpoint 2013演示文稿中嵌入了很多图片。在Powerpoint 2013中,我可以右键单击图片对象,然后使用“另存为图片”将图像保存到本地磁盘。但这是手动方式。我想知道是否有任何方法可以通过VBA实现自动化?我能够循环浏览Shapes集合,然后确定对象的类型。但我无法找出哪些属性或方法与将图片存储到本地磁盘相关?下面是遍历Shapes集合并确定该形状是否为msoPicture类型的代码片段 For currentSlideIndex = 1 To to

我在Microsoft Powerpoint 2013演示文稿中嵌入了很多图片。在Powerpoint 2013中,我可以右键单击图片对象,然后使用“另存为图片”将图像保存到本地磁盘。但这是手动方式。我想知道是否有任何方法可以通过VBA实现自动化?我能够循环浏览Shapes集合,然后确定对象的类型。但我无法找出哪些属性或方法与将图片存储到本地磁盘相关?下面是遍历Shapes集合并确定该形状是否为msoPicture类型的代码片段

  For currentSlideIndex = 1 To totalSlidesCount
    Set currentSlide = ActivePresentation.Slides(currentSlideIndex)
    For Each mediaShape In currentSlide.Shapes
        mediaCounter = mediaCounter + 1 'for each shape in the slide
        If currentSlideIndex = 3 Then
              If mediaShape.Type = msoPicture Then
              MsgBox ("Shape Type Picture is " + CStr(mediaShape.Type) )
            End If

        End If
    Next mediaShape
    mediaCounter = 0 'Reset to 0 for the new slide
Next            

可以使用形状的.export方法将当前形状导出到图片

这通常是隐藏的,因此默认情况下您不会获得intellisense帮助,因此:

进入IDE 按F2键打开对象浏览器 在类右侧的窗格中单击鼠标右键,在顶部可以看到“成员…”。 选中“显示隐藏成员”旁边的复选框

现在,您将在幻灯片形状上键入.导出时获得intellisense指导

还请注意,如果形状为类型14(占位符),则它可以包含图片,因此您可能需要添加以下内容:

If mediaShape.Type = msoPlaceholder Then
  If mediaShape.PlaceholderFormat.ContainedType = msoPicture Then
    ' it's also a picture
  End If
End if
为了增加更多的娱乐价值,您可能还有.Type=msoLinkedPicture,甚至在某些情况下,msoEmbeddedOLEObject恰好是一张图片