- ベストアンサー
エクセル・VBAでテキストボックスに入力された文字を
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
部分的に一致していても、リストに追加するように出来ますか? If Range("B" & i).Value = TextBox1.Value Then を If Range("B" & i).Value Like "*" & TextBox1.Value & "*" Then にするとか また、表示された1・2列目をクリックすると、そのセル をアクティブに出来ると良いのですが・・・ No1の方のコードをお借りします。 Private Sub ListBox1_Click() Range("C:C").Find(what:=ListBox1.Value, LookIn:=xlValues, lookat:=xlPart, MatchCase:=False).Activate End Sub とかでは?
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7940)
ん? なるほど,そういう事がしたかった訳ですか。 private sub CommandButton1_Click() dim c as range dim f as string set c = worksheets("Sheet1").range("B:B).find(what:=textbox1, lookin:=xlvalues, lookat:=xlpart, matchcase:=false) if c is nothing then exit sub f = c.address do listbox1.additem c.value set c = worksheets("Sheet1").range("B:B).findnext(c) loop until c.address = f end sub とか。
補足
何度も回答いただきありがとう御座います うまく表示出来るようになりました 表示された検索結果をクリックすると、そのセルを アクティブにする事は出来ないのでしょうか?
- hallo-2007
- ベストアンサー率41% (888/2115)
Private Sub CommandButton1_Click() ListBox1.Clear For i = 2 To Range("B65536").End(xlUp).Row If Range("B" & i).Value = TextBox1.Value Then ListBox1.AddItem Range("C" & i).Value End If Next End Sub これではダメだったのでしょうか? B列の2行目から検索して textbox1と同じだったらC列をリストに追加 見たいな感じですか。
補足
部分的に一致していても、リストに追加するように出来ますか? 例えば、下記データが入力されていて、 A B C 1212 5568 4848 3535 8568 1234 4567 5577 4567 テキスト入力が「568」の時に、1・2列目が表示される 様に出来ないでしょうか? また、表示された1・2列目をクリックすると、そのセル をアクティブに出来ると良いのですが・・・
- keithin
- ベストアンサー率66% (5278/7940)
private sub commandbutton1_click() if application.countif(worksheets("Sheet1").range("B:B"), "*" & textbox1 & "*") > 0 then listbox1.additem application.vlookup("*" & textbox1 & "*", worksheets("Sheet1").range("B:B"), 1, false) end if end sub とか。 dim res as range set res = worksheets("Sheet1").range("B:B").find(what:=textbox1, lookin:=xlvalues, lookat:=xlpart, matchcase:=false) if not res is nothing then listbox1.additme res.value end if とか。
関連するQ&A
- VBAのテキストボックスに文字列を貼り付ける方法
こんにちは エクセルのVBAのユーザーフォーム上に作ったテキストボックスに 他でコピーした文字列(または数値)を貼り付け(ペースト)たいのですが、 テキストボックスのプロパティの項目のどれかを設定すれば可能でしょうか? 現状ではここで、右クリック自体できなくなっています。 使っているのはエクセル2000です。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAについて質問です。
エクセルVBAについて質問です。 シート1のユーザーフォームにコンボボックスとテキストボックスが各1つずつ、 シート2のA列には1行目から順に「あ」「い」「う」と文字が入っていて、B列には「1」「2」「3」と値が入っています。 コンボボックスのリストにはシート2のA列の文字が選択できる状態にあります。 この状態で、例えばコンボボックスで「い」を選んだら、テキストボックスに自動的に「2」と入る、というように、コンボボックスのリストの中から任意の文字を選択したときに、テキストボックスにB列の値が入るようにするにはどのようにすればいいのでしょうか?よろしくお願いします。
- ベストアンサー
- Visual Basic
- エクセルVBAのユーザーフォーム上のテキストボックスについての質問です
エクセルVBAのユーザーフォーム上のテキストボックスについての質問です。 Aのユーザーフォームの内容をBのユーザーフォームのテキストボックスへ引き継いで、Bのユーザーフォーム上で内容を編集するという仕組みにしたいのです。 Bのユーザーフォームは新規入力もかねたユーザーフォームなので、テキストボックスのイベントにAfterUpdateを使用して、テキストボックスの内容が書き換えられるとデータベースから検索して新規か既存か判断させています。 AのユーザーフォームからBのユーザーフォームのテキストボックスへ引継ぎさせるときにこのAfterUpdateを発生させたくないのですが、Application.EnableEvents=Falseなどを使ってもイベントが発生してしまいます。 また、イベントがどのタイミングで発生するかと、コードをステップで実行させると、このイベントは発生しません。そのために、いきづまってしまいました。 AのユーザーフォームからBに引き継ぐ処理 ユーザーフォームB.Load ---ユーザーフォームBのイニシャライズが実行される ユーザーフォームB.テキストボックス = ユーザーフォームA.テキストボックス ユーザーフォームB.Show ちょっと簡単に書きすぎですがこんな感じです。 コードをステップで実行するとユーザーフォームBのAfterUpdateは実行されません。(VBAエディタのバグ?) どなたか回答お願いします。
- ベストアンサー
- その他(プログラミング・開発)
- EXCEL VBA テキストボックスを見やすくしたい
いつもお世話になっております。 EXCEL VBA のユーザーフォーム上の テキストボックスについて教えて下さい。 大きめのテキストボックスを作り 改行を許可して、数十文字を表示させることができたのですが、行と行の間が詰まりすぎていて、見づらいのです。 行間を空ける方法を教えて下さい。
- ベストアンサー
- オフィス系ソフト
- VBA 検索ボックスの作成について
VBA初心者です。 エクセルで、ある列(仮にA列)のみに限定し、ショートカットキーを押した時に、 別シートにあるデータベースから検索、 検索結果をショートカットキーを押したセルに反映させるマクロを組みたいと思っています。 具体的には、 シート1→(請求明細用シート) A列→コード B列→企業名 C列→部署名 D列→請求内容 E列→金額 etc シート2→データベース(全コード一覧) A列→コード B列→企業名 C列→部署名、のみが記載。 検索ボックスは、 ユーザーフォームにテキストボックスひとつ、ボタン1つ、リストボックス1つ。 テキストボックスに文字を入力し、ボタン(検索用)を押すと、 リストボックスにシート2上のAーC列の結果が表示され(検索条件:部分一致)、 検索結果をリストボックス上でダブルクリックすると、 ショートカットキーを押したA列のセル(及びB-C列)に検索結果を出力することができる、 といったプログラムを考えています。 (B-C列への出力はVLOOKUPだけで大丈夫なので、マクロ上で組む必要はないです。 また、テキストボックスで検索する時は、基本的にB列(会社名)の内容で検索する予定です。 そして同じ会社でも部署が違えば、別のコードを採用している為、 検索結果が複数ある場合があります。 注文が多くて申し訳ありませんが、よろしくお願いします。
- 締切済み
- Visual Basic
- エクセルのマクロで入力文字を一文字ずつ並んだセルに入れる
エクセルマクロ超初心者です。 エクセルVBAでユーザーフォームを作成しました。 テキストボックスに入力した文字列を「登録」ボタン押下後、エクセルシートのセルに一文字づつ入るようにするにはどうすれば良いでしょうか? 例えばテキストボックスに「kohiro」と入力するとエクセルのsheet1のA1「k」、B1「o」、C1「h」、D1「i」、E1「r」、F1「o」となるようにしたいのです。入力する文字数は0~30文字までで、その都度長さは変わります。どうやって、文字をばらせばいいのか、またどうやって可変長の文字列を指定したセルに入力すればいいのかわかりません。どうかよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでの テキストボックス内の値検索について
お世話になります。 早速質問致します。エクセルVBAでユーザーフォームへ配置された 各テキストボックスへ入力を忘れた箇所がある場合それを見つけ出し メッセージボックスで入力忘れを表示させ、さらに、その入力を忘れ てしまった空欄のテキストボックスにフォーカスを移動させたいので すが、どのように指令したら良いのでしょうか? ちなみにテキストボックスは15個設けています。それらを一度に 検索する方法がありましたら、アドバイスお願い致します。
- ベストアンサー
- Visual Basic
- テキストボックスの文字数制限について
エクセル2000でVBAを勉強中の初心者です。 ユーザーフォームのテキストボックスに入力できる文字数の制限や、ボックス内での文字の折り返し表示はできるのでしょうか。どなたかご指導いただけないでしょうか。
- ベストアンサー
- Visual Basic
- エクセル VBAのリストボックス
エクセルのVBAでユーザーフォーム上のリストボックスに文字を入力すると候補がドロップダウンリストに表示され、候補から一つを選択するとドロップダウンリストをとじるといったコードを教えてください。ただし、最終的にリストボックスの値はリストから選ぶのみで、文字を入力するのは候補を表示するためだけに使いたいのです。どなたか、ご教授願います。
- ベストアンサー
- オフィス系ソフト
- エクセルシートから検索
カテゴリー違いかもしれませんが エクセルVBAのユーザーフォームを使用して テキストボックスへ入力したデータを指定のシートから検索し、 同じユーザーフォームへ希望のデータ(検索値の同行)を表示させるということはできるのでしょうか。 また、入力した文字と一致したもの全てをということも出来るでしょうか。 例 Aのテキストボックスに、検索したい文字を入れる 一致したデータ全ての行の情報を B以降のフォームへ表示させる 説明がわかりにくいとは思いますが 宜しくお願い致します。
- ベストアンサー
- その他(データベース)
お礼
ありがとう御座いました お二方のおかげでうまく動いています 本当にありがとう御座いましたm<__>m