Эти текстовые поля, кажется, встроены в ChartObjects
. Так что вместо этого вы должны l oop ваш ChartObjects
. Затем l oop поверх его коллекции Shapes
, и только когда вы встретите правильный TextBox
, вы должны изменить его шрифт. Встроенные текстовые поля можно вставить в диаграмму, выбрав диаграмму и вставив фигуру. С тех пор эти фигуры перемещаются вместе с диаграммой.
Например:
Sub FindTextBoxes1()
Dim c As ChartObject
Dim s As Shape
For Each c In ActiveSheet.ChartObjects
For Each s In c.Chart.Shapes
If s.Type = msoTextBox Then
s.TextFrame2.TextRange.Font.Size = 30
End If
Next s
Next c
End Sub
Укажите переменные Workbook
и Worksheet
для более точного определения места, где вы хотите, чтобы этот макрос работал (вместо этого уродливого ActiveSheet
)
Вдохновение от здесь
В то время как встроенные текстовые поля отлично различают guish формирует вас делает хотите изменить те, которые вы не хотите изменить, вам также не нужно сначала выбирать текстовые поля, чтобы иметь возможность изменить Font.Size
в случае, если вы хотите выполнить итерацию над всеми не встроенными текстовыми полями. Просто обратитесь к Characters
внутри TextRange
. Например:
Sub FindTextBoxes2()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.Type = msoTextBox Then
s.TextFrame2.TextRange.Characters.Font.Size = 30
End If
Next
End Sub