プロが教えるわが家の防犯対策術!

excelで実験データに関する検索エンジンを作成したいと思っています。

ネットで調べたところ、chi********さん が
http://beauty.geocities.jp/chirinuruwowahe/Kensa …
のようなマクロを用いた検索エンジンを作成していらっしゃいました。

上記の検索エンジンは検索条件が2つでしたが、今回作成したいものは検索条件が3つか4つとなるため自分で作成したいのですが、マクロに関しては全くの初心者ですので、作成方法が分かりませんでした。

よろしければマクロの操作手順とともに検索エンジンの作成方法を教えては頂けないでしょうか。
よろしくお願いします。
---------------------------------------------------------------------------------------------------
便宜上、縦棒と下線でセルの枠線を表記しました。
sheet1に以下のようにデータを入力しています。

通し番号|物質名|___a__|___b__|___c__|
4-77___|A___|180909|______|180910|
4-78___|B___|______|180910|______|
4-79___|C___|180910|______|______|
(※) 物質Aをaという測定を行った結果が180909であり、ここにハイパーリンクでリンク先のデータに飛べるようになっております。

sheet2の検索画面と結果は以下のようにしてほしいです。

クリア|
|通し番号|物質名|測定方法|
|______|_____|_______|
|検索___|検索__|検索___|

通し番号の下の空白セルに番号を打ち込み、検索を押すと該当する物質名と測定方法のリンク先番号が
ずらっと表示され、クリアを押すと消える感じです。

検索結果に関しては絞り込みができるようにお願いします。
例えば、通し番号4-77と打ち込んだときは該当する列の物質名と測定方法のリンク番号がすべて表示される。物質aかつ測定方法cを検索すると該当するリンク番号が並ぶようなイメージです。

---------------------------------------------------------------------------------------------------

A 回答 (6件)

回答ではないので、興味が無ければ無視してください。


そもそも20行程度の表で検索機能は必要ないような気がするのですが、もし必要だとしてもシートレイアウトを添付画像のようにすれば、オートフィルタで十分だと思います。
「excelでマクロを用いた検索エンジンを」の回答画像6
    • good
    • 0

マクロ作成時の前提条件として、以下の確認項目があります。


1.絞り込み検索を行うと、前の検索結果には戻せません。
あなたが提示された例で、
物質名 A で検索
通し番号|物質名_|__a___|__b___|__c____|・・・・①の状態
4-1____|A_____|180909|______|______|
4-3____|A_____|______|180911|______|
4-6____|A_____|180915|______|180916|

ここからさらに測定方法aで絞り込みをかけた場合

通し番号|物質名_|__a___| ・・・・②の状態
4-1____|A____|180909|
4-6____|A____|180915|

②の状態になったあと、①の状態には戻せませんので、ご了承ください。

2.検索ボタンがクリックされた時、最初の検索なのか、絞り込みの検索なのかを判定する方法
通し番号の検索を例にとると、
あなたが、最初の検索のつもりで、通し番号の検索をクリックしたした場合、マクロはあなたの気持ちを汲み取ることはできません。従って、最初の検索なのか、絞り込みの検索なのかは、以下のように判定します。
最初の検索:クリアボタンのクリック後の行われる検索が最初の検索になる。クリアボタンがクリックされると、
Sheet2の5行目以降が全てクリアされる。従って、Sheet2のA5が空白なら、最初の検索であると判定する。
絞り込みの検索:Sheet2のA5が空白以外なら、絞り込みの検索であると判定する。

3.作業用シートの使用
シート名:作業用
の空のシートを作成しておいてください。(検索時の作業用に使用します)
絞り込み検索の場合、Sheet2の検索結果を一旦、作業用に格納し、最後に、Sheet2へ戻します。

4.Sheet2の5行は見出し行になります。
添付図の黄色の部分参照

上記の仕様で宜しいでしょうか。
「excelでマクロを用いた検索エンジンを」の回答画像5
    • good
    • 0

No3で添付図が漏れましたので追加します。


添付図はExcel2007のものです。(他のバージョンもほぼ同じかと)
「excelでマクロを用いた検索エンジンを」の回答画像4
    • good
    • 0

ボタンの登録とマクロの関連付けです。


1.以下のマクロを標準モジュールへ登録してください。
(これは、ボタン確認用です。正式なマクロは後ほどになります)
Option Explicit

Public Sub クリア()
MsgBox ("クリア ボタンがクリックされました")
End Sub

Public Sub 通し番号検索()
MsgBox ("検索(通し番号) ボタンがクリックされました")
End Sub

Public Sub 物質名検索()
MsgBox ("検索(物質名) ボタンがクリックされました")
End Sub

Public Sub 測定方法検索()
MsgBox ("検索(測定方法) ボタンがクリックされました")
End Sub

2.上記のマクロを呼び出して、メッセージボックスに該当メッセージが表示されることを確認してください。

3.次にボタンの登録です。(クリアボタンを例にします)
①開発タブをクリック
②「挿入」アイコンをクリックし、フォームコントロールのボタンを選択する。
(Active-Xのコントロールではありません)
③それをA1へ張り付る。

④貼り付け後、そのボタンを右クリックし、「テキストの編集」をする。(表示文字をクリアに変える)
⑤そのボタンを右クリックし、「マクロの登録」をする。
マクロ名の一覧が表示されるので、「クリア」を選択する。
以上で、クリアボタンの登録及びマクロの関連付けが完了です。
クリアボタンをクリックすると「クリア ボタンがクリックされました」のメッセージが表示されればOKです。
他のボタンも同様に行います。

まず、上記の作業を行っておいてください。
    • good
    • 0

補足要求の追加です。


①通し番号と測定方法の結果(180910等)は、全て半角ですか。

②検索時、全角と半角は区別しますがよろしいですか。(物質名が全角のAで検索時指定された文字が半角のAならマッチしない)
それとも、区別しないほうが良いですか。

③検索時、完全一致で検索しますがよろしいですか。(物質名が「ハイドロメタン」の場合、検索時「ハイドロ」ではマッチしない)
それとも、部分一致のほうが良いですか。
    • good
    • 0
この回答へのお礼

① はい、全て半角です。

② 区別しなくて構いません。私個人のデータのみですので、そこまで物質名、測定方法に関して種類は多くありません。したがってリストから選べるようにしていますのですべて半角で大丈夫です。

③完全一致でよろしくお願いします。

お礼日時:2018/09/16 11:15

補足要求です。


①sheet1はおよそ何行ありますか。

②クリア、検索については、添付図のようにボタンを張り付けて、そのボタンがクリックされたとき、該当するマクロを
呼び出すようにする必要があります。回答者が提供できるのは、マクロだけです。従って、ボタンの割り付け及びボタンと
マクロの関連付けはあなた自身で行う必要がありますが、宜しいでしょうか。

③通し番号で検索した後に、物質名で絞り込み(又は測定方法で絞り込み)をしたいということですが、
まず最初に、物質名で検索することはないのでしょうか?
もし、あるなら、物質名の検索の場合、絞り込みの検索なのか、最初の検索なのかは、どのようにして区別するのでしょうか?
(測定方法の検索も同様です。通し番号で絞り込みを行うなら、通し番号の検索も同様です)
    • good
    • 0
この回答へのお礼

① 20行です。

② はい、マクロのみの提供で大丈夫です。もしよろしければ、関連付けのやり方を教えて頂けないでしょうか。捜査自体は頂いたマクロを用いてこちらで行いますので。

③ 最初に物質名で検索することも想定しております。物質名で初めに検索した場合は物質名に該当するものが通し番号、測定方法関係なく全て検索されるようなイメージです。

例 sheet1 (abcはそれぞれの測定方法です)
通し番号|物質名_|__a___|__b___|__c___|
4-1_____|A____|180909|______|______|
4-2_____|B____|180910|______|______|
4-3_____|A____|______|180911|______|
4-4_____|C____|180912|180913|______|
4-5_____|D____|______|______|180914|
4-6_____|A____|180915|______|180916|

sheet2

物質名 A で検索
通し番号|物質名_|__a___|__b___|__c____|
4-1____|A_____|180909|______|______|
4-3____|A_____|______|180911|______|
4-6____|A_____|180915|______|180916|

ここからさらに測定方法aで絞り込みをかけた場合

通し番号|物質名_|__a___| 
4-1____|A____|180909|
4-6____|A____|180915|

という風に結果が出るとありがたいです。
どの項目からも検索することが出来て、複数の条件で検索した場合はそれらすべてに当てはあるもののみのデータ番号がヒットするようにしてもらえるとありがたいです。
また、ヒットしたデータ番号からハイパーリンクでデータに飛べるようにしたいです。

お礼日時:2018/09/16 11:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています