• ベストアンサー

テキストボックス

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • Excel : テキストボックス中のテキストの検索・置換

    Excelの図として貼り付けたテキストボックスにテキストが入力されていて、そのテキストボックスが数十個、シートに貼り付けられています。またそれが30シートくらいあります。 このたくさんのテキストボックスに入力されたテキストを複数のシートに渡って一括置換する方法はありませんでしょうか。

  • エクセルVBA チェックBoxとテキストBox

    VBA勉強中の者です。エクセル2010使用 前回も同じような件で質問したのですが、入力フォームを作成中。 数量表の入力ホームなので、出来るだけキーボードのテンキーでの操作が出来るようにと考えております。 チェックボックスのon/off でテキストボックスの入力の可否を出来るようにしています。これが7組あるとします。(チェックボックス1に対してテキストボックス1に数値が入力出来るように) 質問(1) チェックが入っていれば、呼応したテキストボックスへエンターキーで移動。 チェックを入っていなければ、エンターキーで次のチェックボックスへ移動するようにしたいのです。 質問(2) シートへの転記の際は、7組の間に『、』カンマを入れたいのですが、当然チェックのないものは必要ないので、カンマが要らない事になります。初心者の考えでは単純に条件式をその通り数書くことになるのかと思うとゾッとしますが、少しでも条件式を減らす方法があれば、ご教授願います。 分かり難くて、すみません。

  • エクセルでのテキストボックスの表示非表示について

     いつもお世話になっております。  エクセル2010を使用していますが、条件によってテキストボックスを表示か非表示にしたいと考えています。テキストボックスは、1つを想定しています。 【例】 (1)sheet1のセルA1が「該当」のとき  →sheet2にあるテキストボックスを表示 (2)sheet1のセルA1が「非該当」のとき  →sheet2にあるテキストボックスを非表示  以上、モジュールでの対応となると思いますが、やり方が分からず苦慮しています。ご教授をどうぞよろしくお願いいたします。

  • テキストボックスを使ったときの条件分岐について

    テキストボックスを使ったときの条件分岐について  ユーザーフォームを使って人事管理をしたいと思っています。 そこで、通勤距離を入力すると、通勤手当額が表示されるようにしたいのですがうまくいきません。手当額は変更があるために、エクセルのシートに入力します。  シートのA1からA5まで2,5、10、15、・・・という風に距離数が入ります。      B1からB5まで2,000、4,000、4,500、5,000、・・・と金額が入ります。  ユーザーフォームにテキストボックスを二つ置き、ボックス1に距離を入力するとボックス2に金額が表示という風にしたいのです。  2キロ未満は0、2キロ以上は2,000、5キロ以上は4,000、10キロ以上は4,500、15キロ以上は5,000という風に表示できるでしょうか?  本を片手にやっているのですが、何分力不足で八方ふさがりになってしまいまいた。  よろしくお願いいたします。

  • ACCESS2010テキストボックス値を抽出条件に

    ACCESS2010にて、フォームに作ったテキストボックスの入力値(数字3桁)をクエリの抽出条件にしたいと考えています。 ただ、そのテキストボックスの数が30個の為、クエリデザイン画面の抽出条件欄にorを用いた条件式で設定することが出来ませんでした。(文字数上限超?) そこで、VBAを用いて抽出条件を設定しようと考えているのですが、初心者のため全く勝手が分かりません。VBAでの設定方法やVBA以外での抽出方法があれば教えて頂けないでしょうか。 尚、テキストボックスには商品コード(数字3桁)を入力し、売上データを集計したクエリにおいて、フォームのテキストボックスに入力された複数の商品コードを抽出条件に設定したいと考えております。 以上、どうかお願い致します。

  • エクセルVBAでの テキストボックス内の値検索について

    お世話になります。 早速質問致します。エクセルVBAでユーザーフォームへ配置された 各テキストボックスへ入力を忘れた箇所がある場合それを見つけ出し メッセージボックスで入力忘れを表示させ、さらに、その入力を忘れ てしまった空欄のテキストボックスにフォーカスを移動させたいので すが、どのように指令したら良いのでしょうか? ちなみにテキストボックスは15個設けています。それらを一度に 検索する方法がありましたら、アドバイスお願い致します。

  • EXCEL VBA のテキストボックスで

    EXCEL VBAのテキストボックスでボックス内にテキストを入力 しなければカーソルの移動が出来ないようにできますか? 宜しくお願いします。

  • ブックオープン時にテキストボックスにフォーカス

    あちこち検索してみたのですが思うような答えが見つからなかったので 良い方法があれば教えて頂ければと思います。 エクセルVBAで、ブックを開いた時に、シート上に配置したテキストボックス (コントロールツールボックスで作成)にフォーカスが移動していて、 すぐに入力できるようにしたいのですが、どうすればいいでしょうか? 現状はファイルを開いてマウスでテキストボックスをクリックしてから 入力しています。 ちなみに、2000を使用しています。

  • テキストボックスをグループ化するVBA

    エクセル上に並んだテキストボックスを、ボタンを押すことで、任意のテキストボックスをグループ化させたい。また、別のボタンでグループ化の解除が出来るようなVBAをおしえてください。 テキストボックスは、Sheet1~3まであって、ボタンもそれぞれに配置してあり、 どこのSheetのボタンを押しても、各シート、それぞれに任意の設定したテキストボックスがグループ化できるようにしたい ※各シート、グループ化するテキストボックスはおなじでなない・・・ よろしくお願いします。

  • テキストボックスの消去

    エクセル内に線なし塗りつぶしなしのテキストボックスが無数に張り付けられて、容量が大きくなりすぎて困っています。文字も入力してないため見つけにくいのですがシート内のテキストボックスをまとめて消去する方法はあるのでしょうか?  初心者なもので文章的にも稚拙でわかりにくいかもしれませんがよろしくおねがいいたします。