2016-03-29 9 views
1

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 
     .Font.Size = i * 10 
     Call WasteTime(50) 
    Next 
End With 
ActiveSheet.Shapes.Range(Array("textEnemy")).Visible = False 

このコードは、サイズが増加するテキストをアニメーション化して消えます。問題は、このコードを実行するとテキストボックスが選択されていることです(その周囲にボックスがあります)。テキストボックスを選択せず​​に同じ目標を達成するにはどうすればよいのですか?

ありがとうございます! @findwindowとして

+2

この行を削除してください: 'ActiveSheet.Shapes.Range(Array(" textEnemy "))。オブジェクトを直接操作します。 – findwindow

+0

私の問題は、私が直接それを扱おうとするとうまくいかないということです。 – Ilan

答えて

1

私は解決策を見つけました。私は、形状変数としてテキストボックスを設定し、それを調整しなければならなかった。

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 
2

は言う:

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 
+0

ありがとうございますが、投稿する前にこれを試しましたが、うまくいきません。 .ShapeRange(1).TextFrame2.TextRange.Characters "が強調表示された状態で、"オブジェクトがこのプロパティまたはメソッドをサポートしていません "というエラーが表示されます。 – Ilan

関連する問題