プロが教える店舗&オフィスのセキュリティ対策術

エクセル VBA テキストBoxが複数の場合! 

K1=テキストボックスでそこにIDを入力
K1n=そのIDの人の名前が出ます。
1つなら下記の場合でいいのですが
これがK1~K20のテキストBoxがある場合は
どのようにすれば良いのですか??

複数の場合の記述を教えて下さい
ちなみにこのDATAは他のBooKにあり
それをオープンにして格納しています。



SS = SH1.Range("A65536").End(xlUp).Row
For lng = 2 To SS
'テキストボックスと同じ値があればを表示する。
If k1.Text = SH1.Cells(lng, 1) Then
k1n.Text = SH1.Cells(lng, 2)
Exit For

'同じ値がない場合はメッセージとする。
Else
k1n.Text = "ID確認!"
End If
Next lng

A 回答 (2件)

>ユーザーフォーム上と同じですか??



違います。でも、テキストボックスって、Excelには、他にも3種類ありますが、そのどれなのでしょうね。その質問だけでは分かりませんね。コントロールツール、フォームツール、オートシェイプの三つがあります。それに、コードのロジックは間違いではありませんが、SS = SH1.Range("A65536").End(xlUp).Row がどのぐらいになりかは分かりませんが、数が多くなると、あまり効率が良くないようです。
    • good
    • 0
この回答へのお礼

確かに効率が良くないですね!
色々教えていただきありがとうございました。

お礼日時:2010/09/01 09:56

コントロールを配置しているのは、ユーザーフォームですよね。


複数の場合は、Controls("k" & I).Textのようにします。


SS = SH1.Range("A65536").End(xlUp).Row
For lng = 2 To SS
'テキストボックスと同じ値があればを表示する。
For I = 1 To 20
If Controls("k" & I).Text = SH1.Cells(lng, 1).Text Then
Controls("k" & I & "n").Text = SH1.Cells(lng, 2)
Exit For
'同じ値がない場合はメッセージとする。
Else
Controls("k" & I & "n").Text = "ID確認!"
End If
Next I
Next lng

この回答への補足

早速の回答ありがとうございます。
使用している場所は、Sheet上にTextBoxです!
ユーザーフォーム上と同じですか??

補足日時:2010/08/30 21:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!