2012-02-04 72 views
4

我與德爾福(2010年)的工作,但我是新與PowerPoint(2010)翻譯的PowerPoint VBA代碼,德爾福,「保留源格式」的問題

我發現兩個代碼與複製幻燈片「保留源格式「:

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,線

new_slide.Design = orig_slide.Design 

異常類EOleSysError與消息 '未找到成員'

TEST2,線

ActiveWindow.View.PasteSpecial (DataType = ppPasteOLEObject) 

異常類EOleException與消息「View.PasteSpecial:無效請求。指定的數據類型不可用'

我正在使用Slide Sorter查看,複製和粘貼工作正常,我只是試圖添加「保持源格式化」命令。

在此先感謝

+1

您好,如果您解決了您的問題,請將其作爲答案並[[接受它]](http://meta.stackexchange.com/a/5235)自行發佈。 – TLama 2012-02-04 22:15:52

+0

我想,但是我看不到「答案旁邊的複選標記」。也許是因爲我是新用戶,也許我不能回答我自己的問題... 如果您有時間,請張貼一些虛擬答案,以便我可以接受它,或者以其他方式解釋我將問題標記爲已回答。 謝謝 – Milan 2012-02-06 09:46:36

+0

我看不到你的答案,你可能沒有'發佈你的答案':) – TLama 2012-02-06 10:34:35

回答

1

我想我已經找到了解決辦法:

此代碼在Delphi(不工作)

var OrigSlide, NewSlide : Variant; 
NewSlide.Design := OrigSlide.Design; 

右側,德爾福似乎接受只有variant_variable,它不接受variant_variable.property

左側似乎以相反的方式工作?!?

當我使用此代碼代替它,它的工作原理

OrigSlide := OrigSlide.Design; 
NewSlide.Design := OrigSlide; 

但我只能猜測原因。