这是由 Office 2007 和更新版本的设计所致。PowerPoint 填充类型幻灯片背景填充属 PowerPoint 独有,在将形状复制到其他 Office 程序时不会转换为其他填充类型或颜色。我们曾请求 Microsoft 重新考虑,并用尽了所有可能的方法,但我们的设计更改请求最终遭到拒绝。Microsoft 的拒绝信中相关部分的原文是,“我们已对问题的原因进行了调查。似乎此行为是设计有意如此,因为幻灯片背景填充的行为在根本上类似于无填充。例如,若用户为其形状选择图片背景,而不是选择纯色填充,则在转换到 Word 时应该采用‘无填充’选项。”
若贵公司有 Microsoft Office 支持合同,而且您希望就此问题联系 Microsoft,可以参阅案例编号 114073011660776 或设计更改请求 Office14#903613。
解决方法:使用背景填充和 VBA 宏为所有形状设置白色的背景颜色...
使用 ALT + F11 打开 VBA 编辑器
单击插入 → 模块以插入新模块
将以下 VBA 代码复制/粘贴到该模块中:
Sub PrepareCurrentSlideForCopyPaste()
'Deactivate think-cell temporarily
Dim tcaddin As Object
Set tcaddin = Application.COMAddIns("thinkcell.addin").Object
Call tcaddin.ActivateAddIn(False)
Do While tcaddin.IsAddInActive()
DoEvents
Loop
'Copy active slide into a new presentation
ActiveWindow.View.Slide.Copy
Dim pres As Presentation
Set pres = Application.Presentations.Add
Dim sld As SlideRange
Set sld = pres.Slides.Paste
'Loop through shapes and replace Background Fill with Solid Fill White
Dim shp As Shape
For Each shp In sld.Shapes
If shp.Fill.Type = Office.msoFillBackground Then
shp.Fill.Solid
'For different background color change the RGB value
shp.Fill.ForeColor.RGB = RGB(255, 255, 255)
End If
Next shp
'PrepareChartForWMF
Call tcaddin.ActivateAddIn(True)
Do While Not tcaddin.IsAddInActive()
DoEvents
Loop
End Sub
返回到 PowerPoint,然后按 ALT + F8 运行该宏。此操作将创建新幻灯片,该幻灯片包含的所有形状都采用白色的纯色填充,而不采用背景填充。
前往新幻灯片,按以上所述复制图表并粘贴。
请注意,必须对每个受影响的幻灯片执行此解决方法。
|