首页 > 解决方案 > 复制形状 Type = msoTextBox 然后粘贴

问题描述

我正在尝试使用带有 Word 的 VBA 将文本框形状转换为图像。我找不到如何使用 VBA 执行此操作,当我尝试录制宏时,我无法选择文本框。我用来查找文本框的代码是对形状集合的反向搜索,使用过滤器仅选择文本框,然后返回形状索引号。我最初的想法是简单地剪切形状并粘贴回图像

欢迎任何建议

标签: vbams-word

解决方案


当我尝试手动执行并录制宏时,我无法选择形状。这是我以前从未遇到过的行为。使用以下代码,我能够复制所需的形状。但是,生成的图像的纵横比发生了变化,并且 type = msoTextBox 的文本被截断。小组工作得很好。[VBA] 子 ShapeCopy()

Dim i As Integer, Shp As Shape

' Select last to first to retain shape numbering
' when shapes are deleted
For i = ActiveDocument.Shapes.Count To 1 Step -1
  Set Shp = ActiveDocument.Shapes(i)
  Shp.Select
  If Shp.Type = msoTextBox _
  Or Left(Shp.Name, 5) = "Group" Then

    Selection.Cut
    Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _
    Placement:=wdInLine, DisplayAsIcon:=False
  End If
Next i

End Sub

[/VBA]


推荐阅读