如何批量设置PPT中的图片格式

蓝天玉 发表于: 2009-12-06 16:44 来源: 扑奔PPT网

我有一份PPT文档,里面有大量图片,基本每幻灯片1张图片,现要将图片的对比度设为85%,亮度设为25%,如果一张一张图片去设置,则要花很多时间。不知有没有办法批量设置图片格式的方法(都是将图片的对比度设为85%,亮度设为25%)。   
  

在网上看到类似情况在WORD里可用VBA处理的宏代码,附下:
   
  Sub   Macro1()   
          For   Each   InlineShape   In   ActiveDocument.InlineShapes   
                  InlineShape.PictureFormat.IncrementContrast   1   
                  InlineShape.PictureFormat.IncrementBrightness   1   
          Next   InlineShape   
  End   Sub


但上述代码在PPT里无效。请各位高手不吝赐教。
大家对 如何批量设置PPT中的图片格式 的评论
laose 发表于 2009-12-06 18:44:29
Sub Macro1()
    Dim sld As Slide, shp As Shape
    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.Type = msoPicture Then
                shp.PictureFormat.IncrementBrightness 0.25
                shp.ScaleWidth 0.85, msoFalse, msoScaleFromMiddle
            End If
        Next
    Next
End Sub
amwyq 发表于 2009-12-06 19:06:08
感谢laose的代码
楼主要的是亮度和对比度,应该只调整对比度和亮度
Sub b()
    Dim sld As Slide, shp As Shape
    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.Type = msoPicture Then
                shp.PictureFormat.Brightness = 0.25
                shp.PictureFormat.Contrast = 0.85
                End If
        Next
    Next
End Sub

[ 本帖最后由 amwyq 于 2009-12-6 19:08 编辑 ]
oukingking 发表于 2009-12-06 22:30:13
路过。。。。。。。。。。。。。。。。。
jack_x_huang 发表于 2009-12-07 00:43:17
学习了。
再宏的定义中,别忘了图片的起始页码。
未名博雅 发表于 2009-12-07 01:31:16
有 关“宏”的知识,请高手多多教教,谢谢(从最基本的开始)
蓝天玉 发表于 2009-12-07 08:30:23
非常谢谢高手们的答复,但代码复制进相册后,运行,无任何提示,证明代码是没有冲突的,但就是没有效果,图片的亮度及对比度显示仍是50%,50%.问题出在什么地方?
laose 发表于 2009-12-07 08:45:10
哈哈,看错楼主的要求了,多些版主更正。另外,楼主运行没反应,可能是宏安全性太高所致!
蓝天玉 发表于 2009-12-07 08:58:04
能否,请高手随便开户一个PPT,测试一下.万分感谢!
laose 发表于 2009-12-07 09:04:28
test

126 KB, 下载次数: 51)

laose 发表于 2009-12-07 09:05:19
上传了一个测试PPT。运行宏试试!
laose 发表于 2009-12-07 09:07:37
需要说明的一点是:宏安全性重新设置并确定后必须重新打开PPT文件才生效的。
蓝天玉 发表于 2009-12-07 09:28:32
谢谢laose的耐心解答,终于成功。另外也谢谢amwyq的解答。太好了,还是扑奔网的回答最快。
蓝天玉 发表于 2009-12-07 10:19:57
刚才一直说没有成功的原因,终于找到了,向大家报告一下.

laose和amwyq的代码非常好,但似乎用于非相册似的PPT有效,如果是以相册方式批量引入的图片,若想用上述VBA代码,则无反应,这也是刚才一直未成功的原因。但换上laose传来的文档及代码,手工插入图片,马上成功了。

因此再打扰一下,如何解决相册中的图片修改。

现上传一附件,请高手们研究一下。万分感谢!


(2009-12-07 11:33:58, Size: 683 KB, Downloads: 48)



[ 本帖最后由 蓝天玉 于 2009-12-7 11:34 编辑 ]
laose 发表于 2009-12-07 12:10:58
那就更简单了:
Sub Macro1()
    Dim sld As Slide, shp As Shape
    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            shp.Fill.Transparency = 0.75
        Next
    Next
End Sub
laose 发表于 2009-12-07 12:17:48
PPT中的相册原理是图形图片填充,因此,代码不能直接针对图片,而是图形!!
蓝天玉 发表于 2009-12-07 13:00:13
谢谢laose,因为我不懂VBA,您写的shp.Fill.Transparency = 0.75
与我要的对比度与亮度还是不能贯通起来,请您写一下它们,我自己还无法举一反三,万分感谢.
laose 发表于 2009-12-07 14:05:51
对象不同,属性和方法自然就不同了,只能曲线实现了!!
蓝天玉 发表于 2009-12-07 14:18:18
谢谢laose,恕我愚钝,您的意思是不是,指无法在相册中实现批量改图片的亮度和对比度.
但您写的VBA可以批量改变透明度啊.在查看工具栏中是同一页面,只是相差一个选项,好像是属同一级别的对象啊.

[ 本帖最后由 蓝天玉 于 2009-12-7 14:29 编辑 ]
jennifermf 发表于 2009-12-07 16:47:57
学习学习!
蓝天玉 发表于 2009-12-08 11:01:52
再顶一下,请高手们支招啊
最新PPT模板
最新贴子
PPT热贴