| 
    
     |  | ▼komarinko さん: 
 >このコードから、シート「グラフ」のシェイプス「buf」のCharacters.Textを
 > 拾えばいいのだと考え、aという変数に、シェイプス「buf」の値を代入する
 > という以下のコードを作ってみました。
 >
 >Sub test()
 >Dim a
 >a = Sheets("グラフ").Shapes("buf").Characters.Text = "+10000000"
 >End Sub
 取得ですから、
 >a = Sheets("グラフ").Shapes("buf").Characters.Text
 と書こうとしたのでしょうね?
 
 >ところが、「インデックスが有効範囲にありません」というエラーが出ました。
 
 INDEXエラーなら、bufという名前のTextBoxがなかったとか?
 
 こちらでは、
 -----------------------------
 実行時エラー '438':
 オブジェクトは、このプロパティまたはメソッドをサポートしていません
 -----------------------------
 というえらーになります。
 
 以下のように してみてください。
 
 Sub test2() 'ShapesクラスのTextFrameプロパティから取得
 Dim ss As String
 ss = Sheets("グラフ").Shapes("buf").TextFrame.Characters.Text
 End Sub
 
 もっと簡単なのは、以下です
 
 Sub test3()   'TextBoxesコレクションの Characters.Text として取得
 Dim ss As String
 ss = Sheets("グラフ").TextBoxes("buf").Characters.Text
 End Sub
 
 
 |  |