在 Excel 2007 VBA 中标记形状

在 Excel 2007 VBA 中标记形状

我创建了一个宏来使用 来制作形状AddShape。我用 来命名它,.name但我无法用宏在形状图标上添加标签。

如果您手动单击某个形状,则可以输入公式来在图标上放置标签。我找不到在宏中自动执行此操作的方法。

Set myDocument = Worksheets(1)
With myDocument.Shapes.AddShape(msoShapeFlowchartConnector, _
    LCell, TCell, WCell, HCell)
    .Name = "Bin" & i
    .Select
    ' I would like to add the formula here!
 End With

(这是在 Windows 10 上。)

答案1

通过使用“记录宏”这个简单技巧,我能够生成以下代码(在 Excel 2013 中):

Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "This is my shape"
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 12). _
    ParagraphFormat
    .FirstLineIndent = 0
    .Alignment = msoAlignLeft
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 12).Font
    .NameComplexScript = "+mn-cs"
    .NameFarEast = "+mn-ea"
    .Fill.Visible = msoTrue
    .Fill.ForeColor.ObjectThemeColor = msoThemeColorLight1
    .Fill.ForeColor.TintAndShade = 0
    .Fill.ForeColor.Brightness = 0
    .Fill.Transparency = 0
    .Fill.Solid
    .Size = 11
    .Name = "+mn-lt"
End With

上面的第一行似乎足以将文本输入形状;其余部分显然只是明确设置了默认属性。

答案2

我终于在调试器中深入挖掘并找到了.texteffect.text我想要的结果。

With myDocument.Shapes.AddShape(msoShapeFlowchartConnector, _
        LCell, TCell, WCell, HCell)
    .Name = ShapeName
    .TextEffect.Text = "My Label"

相关内容