繁体   English   中英

如何从MS Word复制/粘贴文本框到Powerpoint幻灯片?

[英]How to Copy/Paste text box from MS Word to Powerpoint slide?

我当前正在创建一个文档,它将采用MS Word文档中的格式和文本并将其粘贴到PowerPoint模板的文本框中。 我四处张望,看看该怎么做,却发现不多。 任何帮助将非常感激!!

Public Sub CommandButton1_Click()
Dim pptApp As Object
Dim pptPres As String
Dim folderPath, file As String

    folderPath = ActiveDocument.Path & Application.PathSeparator
    file = "Huntington_Template.pptx"
    pptApp.Visible = True
    pptApp.presentations.Open (folderPath & file)

    ActiveDocument.Bookmarks("Update_Image").Range.Copy 'text box to copy in MS WS
    'not sure what to do next?

End Sub

我注意到您的代码中存在一些错误:

  • 您尚未创建PowerPoint.Application的实例
  • 您已将pptPres声明为String,但可能应As Object代表Powerpoint.Presentation对象
  • 您没有对pptPres进行任何分配

通过Shape的.Name会更容易做到这一点,但我认为这会起作用。 除上述变量外,我还进行了其他更改以声明一些其他变量。

Sub Test()
Dim pptApp As Object    'PowerPoint.Application
Dim pptPres As Object   'PowerPoint.Presentation
Dim folderPath As String, file As String
Dim bk As Bookmark
Dim doc As Document
Dim wdRange As Range
Dim shpTextBox as Object 'PowerPoint.Shape

    '## As a matter of prefernce I use variable rather than "ActiveDocument"
    Set doc = ActiveDocument

    '## Use a variable for the bookmark
    Set bk = doc.Bookmarks("Update_Image")

    '## Assign to the pptApp Application Object
    Set pptApp = CreateObject("PowerPoint.Application")

    folderPath = doc.Path & Application.PathSeparator
    file = "Huntington_Template.pptx"

    pptApp.Visible = True
    '## assign to the pptPres Presentation Object
    Set pptPres = pptApp.presentations.Open(folderPath & file)

    '## Select the bookmark so we can copy it
    bk.Select

    '## Copy it
    Selection.Copy


    'Note: ensure you are at the correct slide location

    '## Assign to the shpTextBox & select it:
    Set shpTextBox = pptPres.Slides(1).Shapes("Text Box 2")
    shpTextBox.Select

    '## Paste in to PPT
    pptApp.CommandBars.ExecuteMso "PasteSourceFormatting"


End Sub

注意这会直接粘贴到幻灯片上,如果您需要将其放入PowerPoint幻灯片中的特定文本框/形状中,请告诉我。 我相当确定可以通过在PowerPoint / etc中指定形状名称来完成。

我以前见过CommandBars.ExecuteMso方法,但是与许多其他方法相比,它的文档记录不是很好。 Application.CommandBars 属性参考没有提到ExecuteMso方法,我在这里找到了一些信息:

http://msdn.microsoft.com/zh-CN/library/office/ff862419(v=office.15).aspx

在没有特定命令的对象模型的情况下,此方法很有用。 适用于内置按钮,toggleButtons和splitButtons控件。

您需要探索一个idMso参数列表, 这些参数是一个相当大的可下载文件的一部分,该文件是Office 2013的最新版本,我相信:

http://www.microsoft.com/zh-cn/download/details.aspx?id=727

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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