【问题标题】:Generalized shape grouping macro VBA PowerPoint广义形状分组宏 VBA PowerPoint
【发布时间】:2018-03-08 07:12:18
【问题描述】:

我希望编写一个通用的 PowerPoint 宏来将特定形状组合在一起。问题是我不提前知道具体的形状名称,因为我的幻灯片每次都会略有变化。这是我的情况:我有一组名称以前缀“rc”开头的 PowerPoint 形状。例如,它们可以是“rc48”、“rc49”、“rc50”、“rc51”。它们总是以递增的数字顺序排列,并且是幻灯片上唯一的“rc”命名形状。在这些形状之后,我有一组带有前缀“tx”的形状(它们不是幻灯片中唯一的“tx”形状,但它们总是遵循“rc”形状)并且总是有一个等量的“tx” " "rc" 对象之后的对象。所以在这个例子中,我将有“tx52”、“tx53”、“tx54”、“tx55”。

我想做的是将这些对象对组合在一起。所以 group1 将是 ("rc48","tx52")。 group2 将是 ("rc49","tx53") 等等。

我对 VBA 编码知之甚少,但我在其他编程语言中的方法是在顺序形状名称向量中找到“rc”形状的位置,然后计算经过“rc”位置的长度(rcshapes_vector)找到我需要的“tx”形状,然后遍历这些对。

我知道这是一个复杂的问题,但我们将不胜感激。

【问题讨论】:

    标签: vba grouping shape powerpoint


    【解决方案1】:

    在 PowerPoint 中使用 vba 代码真的很痛苦,因为你没有 Excel vba 等很多功能,但我希望以下想法可以帮助你:

    您可以验证 Shape 的类型,例如 If oShp.Type = msoTextBox ThenIf oShp.Type = msoPicture Then

    您还可以验证每个 Shape 的 top 或 left 属性以查找幻灯片中的位置。 如果您确定您的形状具有这些名称,也许您可​​以尝试:

    Dim oShp As Shape
    For Each oShp In ActivePresentation.Slides(SldNumber).Shapes
       If oShp.Name = "rc49" Then
          Do Something
       End If
    next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多