• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでフォームを作成しています。(VBA))

エクセルVBAでフォームを作成して名簿番号を元に他の値を取得できない問題

このQ&Aのポイント
  • エクセルでフォームを作成している際に、フォームAのリストボックスから選択した名簿番号を取得し、フォームBに表示されている個人の詳細を取得しようとしていますが、うまくいきません。
  • フォームAのリストボックスにはsheet1の名簿が表示されており、クリックで選択した名簿番号を取得して、フォームBに表示されている個人の詳細を出そうとしています。
  • 名簿番号はフォームBの名簿番号テキストボックスに取得できますが、それを元にVLOOKUP関数で研究名を取得しようとしてもうまくいきません。VBAのコードのどこが間違っているのか分かりません。VBA入門者であり、助けていただけると嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.1

名簿番号は恐らく数値でしょうから、 名簿番号.Textを数値に変換してからでないとダメでしょう。 例えば、Val関数で数値に変換して。。。 WorksheetFunction.VLookup( Val(名簿番号.Text), ADR, 4, False) また、CInt、CLngなどでも数値変換できます。   以上です。

norisukedon
質問者

お礼

なるほど! そうだったんですね。ありがとうございます。ちゃんと出てきました。 さらに質問してもよろしいでしょうか。 テキストボックスに表示したのは金額なのですが、文字として認識されてしまっているので これをケタ区切り?カンマ区切り?というのでしょうか、これに変えて表示させるには どのような方法でできますでしょうか? すみませんが教えてください。

その他の回答 (1)

  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

またまた登場、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などはヘルプで調べること。 ---------------------------------------------------- 以上です。    

関連するQ&A