2016-08-10 5 views
0

Ich muss mit einer Zahl beschriftete Formen erstellen, aber die Form zeigt nicht die ganze Zahl.Shape zeigt nicht den gesamten Text

Zum Beispiel, wo die Zahl 1 bis 9 ist es angezeigt, aber für 10 bis 19 es zeigt nur 1.

Ich will nicht, um den Radius ändern es das gleiche sein.

Sheets(xRiS).Select 
Dim textRectangles As Shape 
Dim radius As Integer 
radius = 15 

Set textRectangles = ActiveSheet.Shapes.AddShape(msoShapeOval, (Range("D13").Left - radius/2), _ 
    Range("D13").Top - radius/2, radius, radius) 

textRectangles.Name = "Groups " & i 
textRectangles.TextFrame.Characters.Text = i 
textRectangles.TextFrame.VerticalAlignment = xlVAlignCenter 
textRectangles.TextFrame.HorizontalAlignment = xlHAlignCenter 
textRectangles.TextFrame.Characters.Font.Size = 9 
textRectangles.TextFrame.Characters.Font.Name = "Georgia" 
textRectangles.Fill.ForeColor.RGB = RGB(220, 105, 0) 
textRectangles.Fill.Transparency = 0.5 

Dies ist das aktuelle Ergebnis:

enter image description here

Dies ist das Ergebnis Ich möchte:

enter image description here

Wie kann ich konfigurieren, dass die Form die Nummer anzuzeigen, wo die Nummer ist 10-19?

+1

Ändern Sie die Eigenschaft "Textausrichtung" auf "Mittelzentriert" (falls dies noch nicht geschehen ist), und Sie müssen möglicherweise die Schriftgröße anpassen. –

+0

in textRectangles.TextFrame Wie kann ich es Mitte zentriert machen, ist die Größe 9, wenn ich 5 setzen wird es unlesbar sein – BKChedlia

+0

* Wie kann ich es Mitte zentriert machen * Verwenden Sie den Makrorecorder, um eine Vorstellung davon zu bekommen, wie man das macht? –

Antwort

0

Es gibt ein paar theoretische Optionen, aber beide scheinen nicht zu funktionieren mit radius = 15 und textRectangles.TextFrame.Characters.Font.Size = 9.

Zuerst ist textRectangles.TextFrame.AutoSize = True die Größe der Form, um den Text zu beheben - jedoch wird dies die radius deutlich erweitern.

Zweite ist textRectangles.TextFrame2.AutoSize = msoAutoSizeTextToFitShape - dies funktioniert jedoch nur, wenn der Mindestwert radius = 33 ist.

Möglicherweise müssen Sie den Radius erhöhen.

+0

der Radius sollte minimal sein und nicht ändern, so sieht es gut aus Warum ist es manuell und nicht programmgesteuert realisierbar? 33 ist groß wenn ich viele Punkte habe – BKChedlia

+0

Ja - die am besten klingende Eigenschaftseinstellung '.TextFrame2.AutoSize = msoAutoSizeTextToFitShape'won't funktioniert nicht für alle Konfigurationen :( –

Verwandte Themen