| 
    
     |  | エクセルのシートに存在するテキストボックスの値をVBAで取得しようとしています。 まず、テキストボックスに値を入れる操作をマクロで記録して以下のコードを得ました。
 
 Sub Macro17()
 Sheets("グラフ").Select
 ActiveSheet.Shapes("buf").Select
 Selection.Characters.Text = "+10000000"
 With Selection.Characters(Start:=1, Length:=18).Font
 .Name = "MS Pゴシック"
 .FontStyle = "標準"
 .Size = 11
 .Strikethrough = False
 .Superscript = False
 .Subscript = False
 .OutlineFont = False
 .Shadow = False
 .Underline = xlUnderlineStyleNone
 .ColorIndex = xlAutomatic
 End With
 
 このコードから、シート「グラフ」のシェイプス「buf」のCharacters.Textを拾えばいいのだと考え、aという変数に、シェイプス「buf」の値を代入するという以下のコードを作ってみました。
 
 Sub test()
 Dim a
 a = Sheets("グラフ").Shapes("buf").Characters.Text = "+10000000"
 End Sub
 
 ところが、「インデックスが有効範囲にありません」というエラーが出ました。
 なにがいけないのか教えていただけないでしょうか。
 
 |  |