首页 > 解决方案 > 我正在寻找一个 VBA 代码来复制活动幻灯片中的文本

问题描述

非常基本的问题:我目前正在尝试获取一个操作按钮以将给定文本复制到剪贴板。目前,它正在与:

Sub CopyPasteButton()
With ActivePresentation.Slides(1)

    .Shapes(5).TextFrame.TextRange.Copy

End With
End Sub

ActivePresentation.Slides(1) 是幻灯片编号,我要在其中查找要使用的宏,.Shapes(5) 是包含文本的页面的第五个形状。问题是我要为每张我希望这个功能在其上工作的幻灯片复制这个子,而且我有很多幻灯片。此外,当我添加幻灯片时,必须在模块中手动重写所有内容。

我愿意使用适用于每张幻灯片的单个宏,我正在考虑使用我在网上找到的一小段代码,但无法将我的菜鸟头绕在它周围:

Dim diapo As Slide
Set diapo = ActiveWindow.Selection.SlideRange(1)

标签: excelvbapowerpointslide

解决方案


假设您的目标形状始终是第 5 个。您可以创建一个形状并分配此宏。您可以将形状复制并粘贴到任何幻灯片。

Sub CopyPasteButton()
    Dim sld As Slide
    Dim shp As Shape

    'current slide where your button is
    Set sld = ActivePresentation.SlideShowWindow.View.Slide

    'assuming that your target shape is always the 5th one
    Set shp = sld.Shapes(5).TextFrame.TextRange.Copy
End Sub

不过,我建议您在选择窗格中为目标形状/文本命名。这会容易得多,您的代码应如下所示:

Sub CopyPasteButton()
    Dim sld As Slide
    Dim shp As Shape

    'current slide where your button is
    Set sld = ActivePresentation.SlideShowWindow.View.Slide

    'If you have a specific name for your target 
    Set shp = sld.Shapes("NameOfYourShape").TextFrame.TextRange.Copy
End Sub

希望这可以帮助


推荐阅读