- ベストアンサー
Excel VBA テキストボックスの値の取得
- Excel VBAを使用してテキストボックスの値を取得する方法について調べましたが、いくつかの方法を試してもエラーが発生します。
- テキストボックスの名前には常に"txt"という文字が含まれており、ActiveShapеオブジェクトのメソッドを使用してテキストボックスの値を取得しようとしましたが、プロパティまたはメソッドがサポートされていないエラーが表示されます。
- 他の方法を試しても同じエラーが発生するため、別のアプローチが必要かもしれません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問にある取得方法は挿入のテキストボックスで有効になります。 エラーになるという事はActiveXのテキストボックスだと思いますから Debug.Print ActiveSheet.OLEObjects(Shp.Name).Object.Text で試してみてください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
こんなのテキストボックスの(普通はVBAで処理対象)の使い方と違うので、戸惑う。全般に説明不十分ではないか。VBAには経験あるようでもあるし、そうでもないようにも思う。 (1)目的が何なのか、どういう使い方をするつもり、なのか (2)どこに、テキストボックスを張り付けたか?普通はUserFormやワークシートだが。 (3)普通は、そのコントロールのイベントの発動を捉えて、テキストボックスの値を取るのだが、そういうのではないらしい。 私なりに、やってみた。下記のような説明と+目的が、もともと必要では。 ーーー Sheet1で 挿入 図形 四角形 名前ボックスに「正方形/長方形1」とでているのを、「ボックス1」に変更 3つ繰り返す。ボックス1,2,3とした ーー 1つ目右クリック テキストの編集 123 2つ目以降も同様に別数字や文字列をセット。 ーーー 標準モジュールに Sub test01() For Each sp In Worksheets("Sheet1").Shapes MsgBox sp.Name MsgBox sp.TextFrame.Characters.Text Next End Sub これを実行すると,ボックス1と123などが出た。 こういうのはくだらないと思うが、質問者のやったことと、どう違うのか。 が説明されていない
- panja2021
- ベストアンサー率10% (6/57)
補足
もっとシンプルに次のようなのを試してみました。 Sub ShapeValue() Dim mySh As Worksheet Debug.Print Sheets("受注").txt受注番号.Value '値が正常に取得可能 Set mySh = Sheets("受注") Debug.Print mySh.txt受注番号.Value 'メソッドまたはデータメンバーが見つかりません。 End Sub Sheets("受注").txt受注番号.Value は値が取得できましたが、 mySh と Sheets("受注")は同等ではないのでしょうか?
お礼
ありがとうございます。 いただきました方法で、無事、値が取得できました。