データーベースに検索機能をつけるには?

Question 79.1 Previous Next
エクセルで作ったデーターベースに検索機能をつけたいのですが、どのようにすればいいでしょうか?
Answer   Copyright (C) 2006.9.1 永井善王
Excel2003をお使いの15才の少年君からのご質問、たのもしいですね。できるだけお力になりますので、頑張ってください。
データベース あなたが作ったデータベースがどんなものか、そして、どのように検索したいのかによって、いろいろな方法が考えられます。
しかし、ご質問文では具体的内容が分かりませんので、私の手元にあるサンプルをちょっと改造し、それを例にして話を進めましょう。

右図が「DB」シートで会員名簿のようなものです。
 【検索用ユーザーフォーム】
入力ボックス
操作方法
1. 「DB」シートにある[検索]ボタンをクリックする
2. 「検索用ユーザーフォーム」が表示されたらIDを入力する
3. すると、お名前・住所・会社名と「DB」シートの行番号が表示される

検索の仕組み
この例では、入力されたIDだけで「DB」シートを検索すればよいので、ワークシート関数の VLOOKUP を利用しています。
この関数はマクロに組み込むことも可能ですが、ここでは、同じブック内の他のワークシート(下図)のセルに数式をセットして結果を得ています。

そして、その結果をユーザーフォームに表示しています。
 【抽出シート】
組み合わせ← 数式バーに B2セルのVLOOKUP関数式が表示されていますね。 C2・D2・E2セルにも同様の式がセットしてあります。

ここでは、B2セルのVLOOKUP関数式の要点だけご説明しておきますと、
A2セルの値を「DB」シートのA1:E6セル範囲の左端列で検索し、一致した場合は、その行の左から2列目の値を表示する となります。

従って、「抽出」シートの A2セルに検索したい値を直接入力すれば、C2・D2・E2セルに結果が表示されますから、この例のようにわざわざユーザーフォームを使う必要はないかも知れません。
が、マクロのご質問ですから少しはマクロを使ってみるのも勉強になります。 短いマクロですから、サンプルブックで見てください。

VLOOKUPについて、もっとくわしく知りたい場合は、下記のページを見てください。
 ・
指定された値から別表を検索して目的の値を取り出すには?
 ・ セルに入力したブック名でそのブックを開くには?

なお、他にもいろいろな検索方法があります。知りたい場合は、下記のページのFAQを参考にしてください。
 ・ Contents 値の操作

サンプルブックのダウンロードは ここをクリック  (YNxv98224_Kensaku.xls 60KB)
※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。

 

Excel VBA Macro