使用VB作为自动化,我想勾选PowerPoint选项框"不压缩文件中的图像"

时间:2014-12-01 21:48:56

标签: vb.net powerpoint

我正在为从Surfer复制文件并将其粘贴到PowerPoint幻灯片的程序添加一项功能。 Surfer图像很大,我需要在PowerPoint幻灯片的框架中只显示一小部分Surfer文件。

我遇到的问题是,当我打开powerpoint时,默认是压缩任何复制和粘贴的图像。由于压缩,PowerPoint幻灯片中显示的内容很模糊。当我没有自动化并关闭图像压缩时,它看起来很完美。

请注意,此程序不仅适用于我,而是分发给公司内的其他人,因此我不能指望其他想要使用此程序的用户更改其默认设置。我只想弄清楚如何关闭压缩。

这是我到目前为止所拥有的:

        'Opens Surfer
        objSurferApp = CreateObject("Surfer.Application")
        'Open Powerpoint
        objPPTAPP = CreateObject("powerpoint.application")
        objPPTMapSeries = objPPTAPP.presentations.add

        'copies image from Surfer
        objSurferMap.shapes.selectall()
        objSurferMap.selection.copy()

        slidecount = objPPTMapSeries.Slides.Count

        'Adds a new slide
        objPPTMapSeries.Slides.Add(slidecount + 1, PowerPoint.PpSlideLayout.ppLayoutBlank)

        'pastes image to PowerPoint slide
        objPPTMapSeries.Slides(slidecount + 1).Shapes.Paste()
        objSurferMap.close()

我没有任何想法,除了将模板PPT与已勾选复选框的程序捆绑在一起,但这似乎并不太优雅。谢谢你的考虑。我对编程比较陌生,而且对stackoverflow很新,所以请告诉我是否有任何明显的事情我应该看到。

1 个答案:

答案 0 :(得分:1)

据我所知,压缩设置不会通过对象模型公开。您可以通过reg设置打开/关闭compresson。这是手册instrux。当PPT没有运行时你确实需要这样做,否则它就不会工作。

关闭Power Point

打开注册表编辑器(“开始/运行”并键入Regedit)

转到[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ PowerPoint \ Options]。改变那个" 12.0"至" 14.0"适用于PowerPoint 2010或" 15.0" for PowerPoint 2013。

创建名为AutomaticPictureCompressionDefault

的新Dword值

确保新Dword的值为0

关闭注册表编辑器

现在,默认情况下,PowerPoint不会压缩图片。如果我们要启用压缩,请返回相同的注册表项并将值从0更改为1.