[英]Translating PowerPoint VBA code to Delphi, “keep source formatting” issue
我正在使用Delphi(2010),但我是PowerPoint新手(2010)
我找到了两个使用“保持源格式”复制幻灯片的代码:
Sub test1()
Dim orig_slide, new_slide As Slide
Dim slide_range As SlideRange
Set orig_slide = ActivePresentation.Slides(2)
orig_slide.Copy
Set slide_range = ActivePresentation.Slides.Paste(6)
Set new_slide = slide_range.Item(1)
new_slide.Design = orig_slide.Design
new_slide.ColorScheme = orig_slide.ColorScheme
End Sub
Sub test2()
ActivePresentation.Slides(2).Select
ActiveWindow.Selection.Copy
ActiveWindow.View.PasteSpecial (DataType = ppPasteOLEObject)
End Sub
他们都在PowerPoint中给出了期望的结果但在Delphi中我得到了例外:
test1,line
new_slide.Design = orig_slide.Design
异常类EOleSysError,消息“未找到成员”
test2,line
ActiveWindow.View.PasteSpecial (DataType = ppPasteOLEObject)
异常类EOleException,消息'View.PasteSpecial:无效请求。 指定的数据类型不可用'
我正在使用幻灯片浏览器查看,复制和粘贴工作正常,我只是尝试添加“保持源格式化”命令。
提前致谢
我想我找到了一个解决方案:
Delphi中的这段代码(不起作用)
var OrigSlide, NewSlide : Variant;
NewSlide.Design := OrigSlide.Design;
在右侧,Delphi似乎只接受variant_variable,它不接受variant_variable.property
左侧似乎以相反的方式工作?!?
当我用这个代码替换它时,它的工作原理
OrigSlide := OrigSlide.Design;
NewSlide.Design := OrigSlide;
但我只能猜到为什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.