- 締切済み
VBAでの検索方法について
win2000,excel2002使用でVBAは初心者です。 駅すぱーとの駅名入力であるように、ローマ字で入力しても日本語で入力しても検索でき、入力すればするほど絞込みがされるようにしたいのですが。まったくもってわかりません。 お時間のあるときでいいので教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
プログラムの点から言えば、2つの論点を含んでいると思います。 (1)「ローマ字で入力しても日本語で入力しても検索でき」 例えばデータとして、(A)漢字名とは別にもう1項目(B)ローマ字名を、検索するファイル(マスター主)ファイル)に持てば、問い合わせ入力された文字が漢字かローマ字かを判別して(A)項目を見るか(B)項目を見るか切り分けるわけです。 問い合わせ入力された文字が漢字かローマ字かを判別するプログラムを組める力が必要なのと、ローマ字データをマスターファイルに加える労力が必要です。 (2)「入力すればするほど絞込みがされるようにしたいのですが」 通常下記(B)は採らないでしょう。 (A)まず初回の検索の結果(通常全マスタ数>検索結果レコード数)を一時的ワークファイル(ディスク)に書き出します。 続けて絞り込み条件が入ったら、上記一時的ワークファイルを対象にして検索します。初回検索と絞込み検索は、出来るだけプログラムの形が一緒になるようにします。通常初回のル-チンを通せば良いように出来るものです。 その後は絞り込み検索ステップの繰り返しです 。 (B)条件だけ、以前のステップ分も憶えておいて、詳しくして、毎回全マスターファイルを検索する方法。 これは時間的に無駄があり、操作者がイライラして耐えられないケースでは、不適当ですが、瞬時に終わる ようなら、プログラムルーチンが1つで、検索キーだけ変わって、繰り返しそのステップを流せるので、簡単になります。 条件=検索キー 初回 関東 絞込み第1回 関東+○○線 絞込み第2回 関東+○○線+△△(駅) (3)実際の例 例えばSQLをご存知ですか。SQL文は検索対象ファイル名の部分(From XX)や検索条件の部分(WHERE XX)が、テキストで表現できるので、そこを実行の前に変えて実行できるというシステムがある場合(アクセスなど)、非常に柔軟性があり、都合が良いのです。 変数化を許さない、別定義の文字列指定を許さないSQLもあると思うので、状況を比較し勉強してください。
- GOLDEN
- ベストアンサー率46% (283/607)
まず無理でしょう 駅すぱあとのアレは、全ての駅名の読みの辞書を持っているから可能なんです 日本全国に多数の駅があるとはいえ、その数は自然言語の言葉の数よりは少ないで すよね? 全ての自然言語の読みの辞書を作る気力と時間とディスク容量がありますか? IMEの辞書を流用できれば不可能ではないかも知れませんが・・・ この方法は、私はわかりません
お礼
お礼が遅くなってすみません。 今はまだ出来ませんでしたが、今後勉強して完成させたいとおもいます。 ありがとうございました。