テキストボックスの名前を Txt1,Txt2,Txt3,,,のように名前を付ける。
For i=0 to 10<=10個の場合
debug.print Txt&i&.Text
Next
はもちろんテキストボックスの内容を得ることはできませんが
debug.print Txt1.Text
debug.print Txt2.Text
....
とは違う方法でなにかありませんか?
また、全く違う方法でもかまいません。よろしくお願いします。
こんなので どうでしょうか?
Dim objCtrl As Control
For Each objCtrl In Controls
If TypeName(objCtrl) = "TextBox" Then
MsgBox objCtrl.Text
End If
Next
解答ありがとうございます。
ところで、
TypeName()関数 ですが、確かにコントロールの種類が分別できていいのですが、
コントロール名を返す関数はないでしょうか?
ex コントロール名を返す関数をRetCtlName()とすると
Txt1にx,Txt2にyと入力されたとする。
debug.print RetCtrlName(objCtrl) & "=" & objCtrl.Text
>Txt1=x
>Txt2=y
さらに、今回のテクニックはどのようにして取得できましたか?なにかの本に載っていましたか?今後の勉強の参考にしてみたいと思いますので是非教えてください。
> コントロール名を返す関数はないでしょうか?
単純に、objCtrl.Name で良いのでは。
なるほど、そのオブジェクト自体のメンバ?プロパティ になっていたのですね。
MSDNより見やすい(引きやすい)リファレンスなにかありませんか?
自分は最初「VisualBasic6.0 300の技」と言う本で勉強しました。
逆引きなので引きやすいです。今だに手放せません。
http://www.cbook24.com/bm_detail.asp?sku=99915691
ツイート | ![]() |