• ベストアンサー

テキストボックス

たびたびの質問すみません。 エクセルVBAでテキストボックス等(条件)に入力すると、他のテキストボックスにエクセルシートから照合して表示させる方法で、条件のテキストボックス等を2つ以上にすることは可能でしょうか、あればやり方を教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

補足などにある疑問に対する回答の一部。 VLOOKUP関数をVBAで使うには。 例題として、セルC1:D3に 1 東京 2 大阪 3 福岡 といれる。索引表を作成する A1に「2」と入っているとして Sub test02() Cells(1, 2) = WorksheetFunction.VLookup(Cells(1, 1), Range("c1:d3"), 2, False) End Sub を実行すると、B1セルに大阪とセット入力されました。 セルA1には必ず1-3の数値が入っている必要があります。入っていないと、また越えている・表に存在しないとエラーになります。 Cells(1, 1), の行の1のところをiとかにして ループで繰り回せばA列全行について表索引が出来ます。 テスト済み。

keiri2002
質問者

お礼

御礼が遅くなりすいません。 >Cells(1, 2) = WorksheetFunction.VLookup(Cells(1, 1), Range("c1:d3"), 2, False) これ便利です! 解決しました。 有難うございます。

その他の回答 (4)

  • GETSTREET
  • ベストアンサー率18% (14/74)
回答No.4

●UserForm1を作成 適当にデザイン ●TextBoxを3つ作成 TextBox1 TextBox2 TextBox3 ●ボタンを作成 ボタンには Private Sub CommandButton1_Click() AAA End Sub ●以下をモジュールへ/////////////////////////////////////// Sub AAA() strMoji$ = UserForm1.TextBox1.TEXT If UserForm1.TextBox1.TEXT = "" Then MsgBox "検索条件を入力してください。", 48 Exit Sub End If On Error GoTo Fail Cells.Find(What:=strMoji, After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ ).Activate lonNUM& = Selection.Row UserForm1.TextBox2.TEXT = Cells(lonNUM, 2).Value UserForm1.TextBox3.TEXT = Cells(lonNUM, 3).Value Exit Sub Fail: MsgBox "該当なし", 48 End Sub

keiri2002
質問者

お礼

御礼が遅くなりすいません。 解決しました。 有難うございます。

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.3

ニヤ vlookupは使ったことあるだよ しかしそれはExcel関数。VBAは一部のVB用語しか使えないズラ。 ただしforApplicationが付くとおり、アプリを操作するライブラリがあるダが、それはEXCELワークシート関数と違うズラ。 拙者は、こういう場合なら、#2の1番目で書いたとおり見えないワークシートに関数をセットして使うでゴザル。ニンニン #2の参考URLがわからないのであれば、最低限Accessを覚える必要あり。時間的に無理なら、#2の一番の方法をお勧めするダバ

keiri2002
質問者

お礼

御礼が遅くなりすいません。 解決しました。 有難うございます。

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.2

すまぬ よい方法が思いつかない。Excel.DGetを見たところ、個人的に使ったことがない。 ひねり出して、思いつく限りで方法は二つ 一つ目は 算出用のワークシートを用意しておいて、DGet関数を埋め込んでおく[非表示でもよい] テキストボックス1、あるいはテキストボックス1とテキストボックス2が更新されるたびに、その埋め込んでおいたDGet関数の反応するセルに値を書込んで、結果を読み込む。 二つ目は ユーザフォームと、データシートが別でなければ実現不能だが、そのシートをデータベースとして利用し、SQL文でデータの抽出を行う http://homepage2.nifty.com/housaka/excel/vbafaq11.html [DAOを使いワークシートに対してSQLを実行するには?]

参考URL:
http://homepage2.nifty.com/housaka/excel/vbafaq11.html
keiri2002
質問者

補足

回答有難うございます。 >http://homepage2.nifty.com/housaka/excel/vbafaq11.html う~ん、何のことかさっぱり分からないです。 そもそもエクセルの関数のVBAでの使い方が、よく分かりません。例えばvlookup関数はVBAでどう使えばいいのでしょうか? VBA X=vlookup(a,b,c,d)で Xはエクセルのセルになるのでしょうか、テキストボックス等でもいいのでしょうか。abcdはエクセルの入力方法でいいのでしょうか。 その他良く使うエクセル関数があれば使い方教えてください。 以上最初の質問とは違いますが、解説お願いします。

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.1

以下前文引用 たびたびの質問すみません。 エクセルVBAでテキストボックス等(条件)に入力すると、他のテキストボックスにエクセルシートから照合して表示させる方法で、条件のテキストボックス等を2つ以上にすることは可能でしょうか、あればやり方を教えてください。 困り度3:直ぐに回答ほしいです 文章がめちゃくちゃになるくらいの焦り度に高感度100! よって、もうちょっと一般人がわかる日本語で再質問を望む

keiri2002
質問者

補足

どうも分かり難かったみたいですみません。 やりたいことは エクセルシート   A  B  C 1 あ  い  う 2 え  お  か 3 え  き  く ユーザーフォーム テキストボックスA、テキストボックスB、テキストボックスC、とありAに『あ』と入力するとB、Cにそれぞれ『い』『う』と表示したいのが1点目、次に同じフォームでAに『え』Bに『き』と入力して、Cに『く』と表示したいのが2点目です。 エクセル関数のDGETのような物をVBAでしたかったのですが・・・お願いします。

関連するQ&A