繁体   English   中英

将PowerPoint VBA代码翻译成Delphi,“保持源格式”问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM