Beschriften einer Form in Excel 2007 VBA

919
Fred Giesen

Ich habe ein Makro erstellt, um Formen zu erstellen AddShape. Ich nenne es mit, .nameaber ich kann dem Formsymbol mit dem Makro keine Beschriftung hinzufügen.

Wenn Sie manuell auf eine Form klicken, können Sie eine Formel eingeben, um das Symbol mit einer Beschriftung zu versehen. Ich kann keinen Weg finden, dies in einem Makro zu automatisieren.

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 

(Dies ist unter Windows 10.)

2
Wie würden Sie ihr normalerweise ein Etikett mit Vanilla Excel zuweisen? Ich sehe keine offensichtliche Möglichkeit, dies entweder im Rechtsklick-Menü für eine Form oder in der Zeichenwerkzeugleiste zu tun. eirikdaude vor 8 Jahren 0
Für Excel 2013 gibt es die Methode [Shapes.AddLabel] (https://msdn.microsoft.com/de-de/library/office/ff840497.aspx), aber ich nehme an, das hilft Ihnen nicht viel. eirikdaude vor 8 Jahren 0

2 Antworten auf die Frage

0
Scott

Durch den einfachen Trick der Verwendung von "Record Macro" konnte ich den folgenden Code generieren (in 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 

Die erste Zeile scheint ausreichend zu sein, um den Text in die Form einzufügen. der Rest legt die Standardattribute offenbar nur explizit fest.

Ich danke dir sehr! Dies hat nicht nur diese Frage beantwortet, sondern auch meine nächste Frage :) (In Excel 2007 kam ein Makro mit einem leeren Makro zurück) Fred Giesen vor 8 Jahren 0
0
Fred Giesen

Ich habe endlich tief genug im Debugger gegraben .texteffect.text, um mein gewünschtes Ergebnis zu finden.

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