連番をつけたコントロールをFor文等でデータを取り出すには?

解決


ケイフォーエスト  2003-11-11 11:00:02  No: 109883

テキストボックスの名前を  Txt1,Txt2,Txt3,,,のように名前を付ける。
For i=0 to 10<=10個の場合
debug.print Txt&i&.Text
Next
はもちろんテキストボックスの内容を得ることはできませんが
debug.print Txt1.Text
debug.print Txt2.Text
....
とは違う方法でなにかありませんか?
また、全く違う方法でもかまいません。よろしくお願いします。


oku  URL  2003-11-11 12:11:23  No: 109884

こんなので  どうでしょうか?
    Dim objCtrl As Control

    For Each objCtrl In Controls
        If TypeName(objCtrl) = "TextBox" Then
            MsgBox objCtrl.Text
        End If
    Next


ケイフォーエスト  2003-11-11 17:22:46  No: 109885

解答ありがとうございます。
ところで、
TypeName()関数  ですが、確かにコントロールの種類が分別できていいのですが、
コントロール名を返す関数はないでしょうか?
ex コントロール名を返す関数をRetCtlName()とすると
Txt1にx,Txt2にyと入力されたとする。

debug.print RetCtrlName(objCtrl) & "=" & objCtrl.Text

>Txt1=x
>Txt2=y

さらに、今回のテクニックはどのようにして取得できましたか?なにかの本に載っていましたか?今後の勉強の参考にしてみたいと思いますので是非教えてください。


魔界の仮面弁士  2003-11-11 20:40:32  No: 109886

> コントロール名を返す関数はないでしょうか?
単純に、objCtrl.Name で良いのでは。


ケイフォーエスト  2003-11-12 03:49:37  No: 109887

なるほど、そのオブジェクト自体のメンバ?プロパティ  になっていたのですね。
MSDNより見やすい(引きやすい)リファレンスなにかありませんか?


oku  URL  2003-11-12 09:12:37  No: 109888

自分は最初「VisualBasic6.0 300の技」と言う本で勉強しました。
逆引きなので引きやすいです。今だに手放せません。
http://www.cbook24.com/bm_detail.asp?sku=99915691


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加