• 締切済み

リストボックス内検索

マクロ初心者です。 (エクセル2003を使用) ユーザーフォームにテキストボックスとリストボックスを作り、 リストボックス内のデータ(2列;ナンバーと文字、2500行くらい)の検索をテキストボックスに入力した文字で行いたいのですが、どうしていいのかわかりません。 ワークシート上では、Find関数を使ってできるのですが、リストボックス内の検索では使えませんか? inStr関数を使うのでしょうか? 検索がされたときのスクロールもできるといいのですが…。 よろしくお願いいたします。

みんなの回答

  • dondonji
  • ベストアンサー率45% (136/299)
回答No.1

リストボックスのテキストプロパティを保持するということでしょうか。 関数を理解されているようなので以下のサイトを参考にしてみてください。 http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/property.html

nyanko_025
質問者

お礼

早々のご回答ありがとうございます。 レベルがまだ低いので、教えていただいたサイトを理解するに いたりませんでした。しっかり勉強してみます。 ありがとうございました。

関連するQ&A

  • ExcelVBAでユーザーフォーム内のリストボックスの設定について

     教えてください、ExcelVBAでユーザーフォーム内にリストボックスを作りました。 複数列・複数行のワークシートデータを参照する設定です。  列は12列で、一番左の列に番号をふってあります。  行は31行で、一行目がタイトル表示してあります。  質問なのですが、このリストボックスは全列・全行表示する大きさでユーザーフォーム内に作成してあるのですが、いざマクロを動かすと幅は問題ないんですが、高さが縮んで自動的にスクロールが表示されます。  ユーザーフォームを大きくしてリストボックスも大きくしてやっても同じです。 このリストボックスの高さを固定させる設定はどうすれば良いでしょうか。

  • エクセル2007VBAで検索するコードを知りたい。

    エクセル2007(Excel2007)のVBAで【検索と置換】と同等の機能をもった検索アプリケーションを作りたいのですが、 そのコード(コマンドボタンを実行したときのコード)を教えていただけないでしょうか。 (おそらくですが、リストボックスのコードも必要だと思います。) 正しくは、【検索と置換】から【置換】機能を無くしたものとイメージしていただきたいです。 ●設置するもの ユーザーフォーム(UserForm1) テキストボックス(TextBox1) コマンドボタン(CommandButton1) リストボックス(ListBox1) ●仕様 ユーザーフォームのテキストボックスに入力してコマンドボタンを押すと、検索対象を見つけ、 リストボックスにその対象一覧を行ごとに表示するものになります。 ●検索するときの条件 (1)大文字と小文字を区別しない (2)半角と全角を区別しない (3)部分一致すれば(一部でも一致すれば)検索対象にする (4)今、開いているワークシート上の「全てのセルが検索対象(列や行を指定しない)」 ※検索されたセルの存在する行ごとに、ユーザーフォームのリストボックスに(1行ずつ)表示したいです。 そして、リストボックスに表示されたデータのうち、どれか1つを選ぶと、その選択対象の行の【D列】にアクティブセルを移動するようにしたいです(画面もアクティブセルが見える位置にスクロールします)。 ●リストボックスに(1行ごとに)表示するもの● ↓↓↓ (左から)I列の値、D列の値、O列の値、Q列の値(→4列の値になります) ※リストボックスにQ列の値が表示された場合のみ(Q列に何かしらのデータがある場合のみ)、 リストボックス上の【その行の(I列の値、D列の値、O列の値、Q列の値の)文字すべてを赤色】にして表示していただきたいです。 分かる方がいましたらよろしくお願いいたします。

  • リストボックスの文字列の検索で困っています!

    C#のプログラミングについて ボタン1を押したとき テキストボックス1にある文字(または数字)がリストボックス1に含まれているかを検索し もし含まれているならばテキストボックス2にその行を表示するプログラムはどうやって書けばいいですか?

  • 検索速度を速くするためには?

    Visual Stdio 2005を使用してダイアログを作成しています。 エディットボックスからキーワードを入力して、テキストファイルから1行ずつ読み込みながら検索して、見付かればリストボックスに追加していますが、もっと検索速度を上げたいと思っています。 ちなみに、ファイルの中身は   1,あいうえお   2,かきくけこ   3,さしすせそ   4,あいうえお という感じで、100000行近くあります。 また、エディットボックスに入力した文字列とテキストファイルから読み込んだ文字列はCString型で、Findを使っています。 検索速度を上げる方法があれば教えて頂きたいです。よろしくお願いします。

  • メモ帳のような文字列検索

     リッチテキストを使ってVBの勉強用にMDIテキストエディタを作っています。  今、文字列の検索と置換部分を作っているのですが、このときメモ帳の検索で使うようなものはどうやって作ればいいんでしょうか。  つまり、検索用のフォームを出したまま、テキスト部分を選択状態(色を反転させた状態)にさせたり、下から上への検索をしたいのですが出来ません。  一応、リッチテキストのFind、もしくはInStr関数を使って、上から下への簡単なものは出来ているのですが、下から上には検索できませんし、検索した後フォーカスをリッチテキストにしなければ、検索した文字列が選択状態にさせられません。  下から検索させるにはInStrRev関数があることは分かったのですが、これだとFindでは出来る『完全一致する単語のみ検索』などが使えなさそうです。  まぁ、これは特にどうでもいいのですが(バイナリモードにすれば大文字小文字の区別は出来ますし)、検索用フォームを手前にさせることはどうやっても出来ません。  色々なサイトにある、『常に手前にフォームを表示』というものも見つけたのですが、これをやっても上手くいきませんし、一旦リッチテキストにフォーカスを移してから再び検索用フォームにフォーカスを移しても選択状態は消えてしまいます。  どうにかして、Findと同等に下から上へと検索させたり、検索用のフォームを手前にさせたまま続けて検索させるということをさせたいのですが、その方法があれば教えてください。 --------- 開発環境 VB6.0SP5 WinME

  • 検索を1度だけにしたい。

    以前も投稿しましたが、まだわからないので質問します。 現在Visual Stdio 2005を使用してダイアログを作成しています。 エディットボックスからキーワードを入力して、テキストファイルから1行ずつ読み込みながら検索して、見付かればリストボックスに追加しています。 ちなみに、ファイルの中身は   1,あいうえお   2,かきくけこ   3,さしすせそ   4,あいうえお という感じで、100000行近くあります。 そこで、エディットボックスに入力した文字列とテキストファイルから読み込んだ文字列はCString型で、Findを使って読み込んだ文字列に含まれるかをチェックしていますが、全角文字列を検索しようとすると何度も検索されてしまっています。 (例えば検索したい文字列が「あいう」の全角3文字だと、最初は「あいう」、次に「あい」、最後は「あ」と、後ろから1文字ずつ減っていって検索されています。) この検索を最初の1度だけにしたいです。何か良い方法があればお願いします。

  • VBとリストボックス

    こんにちわ。 いまVB6.0sp5でリストボックスに チェックボックス付きのリストを表示し, クリックで複数選択するロジックを組んでいます。 リストに表示するデータ件数がリストボックスの高さを超えるため, 横スクロールさせる必要があります。 そこで,2列目のキャプションをクリックすると, スクロールし,選択した行以外のチェックボックスが見た目, 消えてしまいます。 なお消えたチェックボックスの箇所をクリックすると, その行のチェックボックスが選択された状態で表示されます。 2列目のキャプションをクリックしたときに,ほかの行のチェックボックスを 消さないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 宜しくお願いします。

  • Excelユーザーフォームでのデータ検索

    現在Excelマクロの勉強中ですが、ユーザーフォームでテキストボックスを4個とコマンドボタン1個を作成し、テキストボックス1にコードを入力してコマンドボタンを押すと、ワークシート(ワークシート名、住所録)に作成されたデータのA列からコードを検索(データは2行目から始まる)し、一致したデータのB列にある「名前」をテキストボックス2、C列の「住所」をテキストボックス3、D列の「電話番号」をテキストボックス4に表示する。 というマクロが書けず困っています。 わかる方教えてください。

  • 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列(会社名)の内容で検索する予定です。 そして同じ会社でも部署が違えば、別のコードを採用している為、 検索結果が複数ある場合があります。 注文が多くて申し訳ありませんが、よろしくお願いします。

  • Accessで文字列検索

    Accessであるテキストボックスに入ってるデータから任意の文字列の位置を知りたくて、 関数を使ってみました。 使った関数はFINDとSEARCHですがどちらもダメでした。 Accessで使える文字列検索関数はないのでしょうか?