- ベストアンサー
テキストボックス
たびたびの質問すみません。 エクセルVBAでテキストボックス等(条件)に入力すると、他のテキストボックスにエクセルシートから照合して表示させる方法で、条件のテキストボックス等を2つ以上にすることは可能でしょうか、あればやり方を教えてください。
- みんなの回答 (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列全行について表索引が出来ます。 テスト済み。
その他の回答 (4)
- GETSTREET
- ベストアンサー率18% (14/74)
●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
お礼
御礼が遅くなりすいません。 解決しました。 有難うございます。
- 2ch
- ベストアンサー率51% (64/125)
ニヤ vlookupは使ったことあるだよ しかしそれはExcel関数。VBAは一部のVB用語しか使えないズラ。 ただしforApplicationが付くとおり、アプリを操作するライブラリがあるダが、それはEXCELワークシート関数と違うズラ。 拙者は、こういう場合なら、#2の1番目で書いたとおり見えないワークシートに関数をセットして使うでゴザル。ニンニン #2の参考URLがわからないのであれば、最低限Accessを覚える必要あり。時間的に無理なら、#2の一番の方法をお勧めするダバ
お礼
御礼が遅くなりすいません。 解決しました。 有難うございます。
- 2ch
- ベストアンサー率51% (64/125)
すまぬ よい方法が思いつかない。Excel.DGetを見たところ、個人的に使ったことがない。 ひねり出して、思いつく限りで方法は二つ 一つ目は 算出用のワークシートを用意しておいて、DGet関数を埋め込んでおく[非表示でもよい] テキストボックス1、あるいはテキストボックス1とテキストボックス2が更新されるたびに、その埋め込んでおいたDGet関数の反応するセルに値を書込んで、結果を読み込む。 二つ目は ユーザフォームと、データシートが別でなければ実現不能だが、そのシートをデータベースとして利用し、SQL文でデータの抽出を行う http://homepage2.nifty.com/housaka/excel/vbafaq11.html [DAOを使いワークシートに対してSQLを実行するには?]
補足
回答有難うございます。 >http://homepage2.nifty.com/housaka/excel/vbafaq11.html う~ん、何のことかさっぱり分からないです。 そもそもエクセルの関数のVBAでの使い方が、よく分かりません。例えばvlookup関数はVBAでどう使えばいいのでしょうか? VBA X=vlookup(a,b,c,d)で Xはエクセルのセルになるのでしょうか、テキストボックス等でもいいのでしょうか。abcdはエクセルの入力方法でいいのでしょうか。 その他良く使うエクセル関数があれば使い方教えてください。 以上最初の質問とは違いますが、解説お願いします。
- 2ch
- ベストアンサー率51% (64/125)
以下前文引用 たびたびの質問すみません。 エクセルVBAでテキストボックス等(条件)に入力すると、他のテキストボックスにエクセルシートから照合して表示させる方法で、条件のテキストボックス等を2つ以上にすることは可能でしょうか、あればやり方を教えてください。 困り度3:直ぐに回答ほしいです 文章がめちゃくちゃになるくらいの焦り度に高感度100! よって、もうちょっと一般人がわかる日本語で再質問を望む
補足
どうも分かり難かったみたいですみません。 やりたいことは エクセルシート A B C 1 あ い う 2 え お か 3 え き く ユーザーフォーム テキストボックスA、テキストボックスB、テキストボックスC、とありAに『あ』と入力するとB、Cにそれぞれ『い』『う』と表示したいのが1点目、次に同じフォームでAに『え』Bに『き』と入力して、Cに『く』と表示したいのが2点目です。 エクセル関数のDGETのような物をVBAでしたかったのですが・・・お願いします。
お礼
御礼が遅くなりすいません。 >Cells(1, 2) = WorksheetFunction.VLookup(Cells(1, 1), Range("c1:d3"), 2, False) これ便利です! 解決しました。 有難うございます。