2

Я создал макрос для создания фигур с использованием 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.)

2 ответа2

0

С помощью простого трюка с использованием "Record Macro" я смог сгенерировать следующий код (в 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

Кажется, первой строки выше достаточно, чтобы ввести текст в форму; остальные, по-видимому, просто явно устанавливают атрибуты по умолчанию.

0

Наконец я достаточно глубоко покопался в отладчике, чтобы найти .texteffect.text чтобы получить желаемый результат.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .