如何在不选择形状的情况下使用VBA更改Excel中的文本大小?
我正在尝试使用VBA更改Excel中文本框中的文本大小。我目前拥有以下代码:如何在不选择形状的情况下使用VBA更改Excel中的文本大小?,vba,excel,Vba,Excel,我正在尝试使用VBA更改Excel中文本框中的文本大小。我目前拥有以下代码: ActiveSheet.Shapes.Range(Array("textEnemy")).Visible = True ActiveSheet.Shapes.Range(Array("textEnemy")).Select With Selection.ShapeRange(1).TextFrame2.TextRange.Characters .Text = msg For i = 1 To 15
ActiveSheet.Shapes.Range(Array("textEnemy")).Visible = True
ActiveSheet.Shapes.Range(Array("textEnemy")).Select
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters
.Text = msg
For i = 1 To 15
.Font.Size = i * 10
Call WasteTime(50)
Next
End With
ActiveSheet.Shapes.Range(Array("textEnemy")).Visible = False
此代码使文本的大小增加,然后文本消失。问题是,当我运行此代码时,文本框被选中(它周围有一个框)。如何在不选择文本框/显示其周围的选择边框的情况下实现相同的目标
谢谢 正如@findwindow所说:
With ActiveSheet.Shapes.Range(Array("textEnemy"))
.Visible = True
With .ShapeRange(1).TextFrame2.TextRange.Characters
.Text = msg
For i = 1 To 15
.Font.Size = i * 10
Call WasteTime(50)
Next
End With
.Visible = False
End With
我找到了解决办法。我必须将文本框设置为形状变量,然后进行调整
Sub Animate(playerCode As Integer)
Dim i As Integer
Dim msg As String
Dim textBox As Shape
msg = "HIT!"
Set textBox = ActiveSheet.Shapes("textUser")
'Animate textbox
textBox.Visible = True
With textBox.TextFrame2.TextRange.Characters
.Text = msg
For i = 1 To 15
.Font.Size = i * 10
Call WasteTime(50)
Next
End With
textBox.Visible = False
End Sub
删除此行:
ActiveSheet.Shapes.Range(数组(“textTowner”)。选择
?直接使用该对象。我的问题是,如果我尝试直接使用它,它似乎不起作用。谢谢,但我在发布之前尝试过,但它不起作用。我收到一个“对象不支持此属性或方法”错误,突出显示了“with.shaperage(1).TextFrame2.TextRange.Characters”。