Rotulando uma forma no Excel 2007 VBA

2

Eu criei uma macro para criar formas usando AddShape . Eu nomeio com .name , mas não consigo colocar um rótulo no ícone de forma com a macro.

Se você clicar manualmente em uma forma, poderá inserir uma fórmula para colocar um rótulo no ícone. Não consigo encontrar uma maneira de automatizar isso em uma macro.

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

(Isso é no Windows 10).

    
por Fred Giesen 12.03.2016 / 02:33

2 respostas

0

Pelo simples truque de usar "Gravar Macro", Consegui gerar o seguinte código (no 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

A primeira linha dos itens acima parece ser suficiente para inserir o texto na forma; o resto, aparentemente, simplesmente define explicitamente os atributos padrão.

    
por 12.03.2016 / 04:47
0

Eu finalmente cavei o suficiente no depurador para encontrar .texteffect.text para obter o resultado desejado.

With myDocument.Shapes.AddShape(msoShapeFlowchartConnector, _
        LCell, TCell, WCell, HCell)
    .Name = ShapeName
    .TextEffect.Text = "My Label"
    
por 13.03.2016 / 07:26