- ベストアンサー
エクセルVBAでフォームを作成して名簿番号を元に他の値を取得できない問題
- エクセルでフォームを作成している際に、フォームAのリストボックスから選択した名簿番号を取得し、フォームBに表示されている個人の詳細を取得しようとしていますが、うまくいきません。
- フォームAのリストボックスにはsheet1の名簿が表示されており、クリックで選択した名簿番号を取得して、フォームBに表示されている個人の詳細を出そうとしています。
- 名簿番号はフォームBの名簿番号テキストボックスに取得できますが、それを元にVLOOKUP関数で研究名を取得しようとしてもうまくいきません。VBAのコードのどこが間違っているのか分かりません。VBA入門者であり、助けていただけると嬉しいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
名簿番号は恐らく数値でしょうから、 名簿番号.Textを数値に変換してからでないとダメでしょう。 例えば、Val関数で数値に変換して。。。 WorksheetFunction.VLookup( Val(名簿番号.Text), ADR, 4, False) また、CInt、CLngなどでも数値変換できます。 以上です。
その他の回答 (1)
- myRange
- ベストアンサー率71% (339/472)
またまた登場、myRangeです。 >テキストボックスに表示したのは金額なのですが >文字として認識されてしまっているので >これをケタ区切り?カンマ区切り?というのでしょうか >これに変えて表示させるにはどのような方法でできますでしょうか? ちょっと勘違いがあるようです。 TextBoxの値は、桁区切りにしたとしても文字列のままです。 TextBoxの値で計算をしたければ、その時点で数値に変換して計算します。 ---------------------------------------------------- ●TextBoxの桁区切り表示方法 Kingaku = 35000 TextBox3.Text = Format(Kingaku, "#,##0") 小数点2桁なら TextBox3.Text = Format(Kingaku, "#,##0.00") ---------------------------------------------------- ●Textbox3の値をCDblで数値に変換後計算する Gokei = Gokei + CDbl(TextBox3.Text) TextBox3が3桁区切りの時の数値変換は、Valではダメ。 ▼CDbl,CLngなどはヘルプで調べること。 ---------------------------------------------------- 以上です。
お礼
なるほど! そうだったんですね。ありがとうございます。ちゃんと出てきました。 さらに質問してもよろしいでしょうか。 テキストボックスに表示したのは金額なのですが、文字として認識されてしまっているので これをケタ区切り?カンマ区切り?というのでしょうか、これに変えて表示させるには どのような方法でできますでしょうか? すみませんが教えてください。