2016-08-10 8 views
0

Мне нужно создать фигуры с номером, но форма не отображает целое число.Форма не отображает весь текст

Например, если число составляет от 1 до 9 отображается, но 10 до 19 он показывает только 1.

Я не хочу, чтобы изменить радиус его должны быть одинаковыми.

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 

Это текущий результат:

enter image description here

Это результат я хочу:

enter image description here

Как настроить форму для отображения номера, где число 10-19?

+1

Измените свойство выравнивания текста на Middle Centered (если оно еще не указано), и вам может потребоваться отрегулировать размер шрифта. –

+0

в textRectangles.TextFrame, как я могу сделать его средним центром, размер 9, так что если я ставлю 5, он будет нечитаемым. – BKChedlia

+0

* как я могу сделать его средним по центру * использовать макрорекордер, чтобы получить представление о том, как это сделать? –

ответ

0

Есть пара теоретических вариантов, но не похоже, что они будут работать с radius = 15 и textRectangles.TextFrame.Characters.Font.Size = 9.

Первый - textRectangles.TextFrame.AutoSize = True, который изменяет размер формы, чтобы исправить текст - однако это значительно расширит radius.

Второй - textRectangles.TextFrame2.AutoSize = msoAutoSizeTextToFitShape - однако это работает только в том случае, если минимальное значение равно radius = 33.

Возможно, вам придется рассмотреть вопрос о увеличении радиуса.

+0

Радиус должен быть минимальным и не меняться, поэтому он выглядит хорошо. Почему это реализуется вручную, а не программно? 33 большой, если у меня много очков – BKChedlia

+0

Да - лучшая настройка свойств звучания '.TextFrame2.AutoSize = msoAutoSizeTextToFitShape'won't работает для всех конфигураций :( –