VBA・マクロツール

テーブル内のデータを項目毎に検索して関連データも表示するツール(Microsoft Excel)

 

本記事では、最も有名でかつ使用頻度が高い表計算ソフトの「Microoft Excel」で使用できる『テーブル内のデータを項目毎に検索して関連データも表示するマクロ』ツールの概要・使い方・取得方法等を紹介しております。

 

「テーブル内のデータを項目毎に検索して関連データも表示するツール」の概要

本ツールは、フォルダを作成する際に階層を指定して一度に複数のフォルダを一括で作成することができます。また作成するだけでなく必要に応じてベースとなるフォルダ(テンプレート)を基にしたフォルダを大量に作成することができるツールとなっております。

 

本ツールは、表内に蓄積されたデータに対して、各項目を対象とした検索ワードを入れて、検索を実行すれば対象セルのみが赤く表示され、検索対象が一度で容易に確認できるツールとなっております。

 

また、関連一致の表示機能をONにすると、検索結果と指定した項目が同一のデータも一緒に表示することができます。

 

本ツールでできること

  • 表、テーブルに対して検索した値で一覧表示できます。
  • 複数の文字を対象にしてAND検索、OR検索で検索できます。
  • 各項目毎に検索文字を指定して検索できます。

通常は検索対象の範囲を選択した後に、Excelの標準機能の「検索」を実施し、セル位置を一つずつ移動しなければいけない作業を、本ツールを使用すると一度で対象行を表示することができます。

 

検索ワードを入れて検索処理を行えば対象行のみが表示され、該当セルが赤く表示されることで、検索が視覚的にも容易にできるようになります。

 

表内に多量のデータがあり、その中から何度も検索する必要がある場合等に有効にご活用いただけます。

 

本ツールの説明動画はこちら

動作の詳細は、下記の「本ツールの利用手順」をご確認ください。

 

本ツールの利用手順

本ツールを使用する手順は以下の通りになります。

Step1:本ツール(Excelマクロファイル)を開く

  1. 本ツールのVBAコードを含んだExcelファイル(***.xlsm)を開きます。

 

Step2:検索したい表を入力する

  1. 下に検索したいデータを表形式で入力していきます。

     

    Step2:検索したい項目に値を入力する

    1. 検索ワード行において、検索したい項目に値を入力します。
    2. 「検索」アイコンをクリックします。


       

      入力した項目(列)において指定した文字が検索されて、対象の行のみ表示されます。

       

      Option1:複数の検索項目に値を入れた場合、検索条件を指定して検索可能

      検索条件は「AND条件」と「OR条件」より選択できます。

      検索条件:「AND条件」

      例えば、会社の列に「Amazon」、納入先の列に「大阪」という値を入れた場合は、会社が「Amazon」でかつ納入先が「大阪」になっている行のみを表示します。

       

      検索条件:「OR条件」

      例えば、会社の列に「Amazon」、納入先の列に「大阪」という値を入れた場合は、会社が「Amazon」になっている、または納入先が「大阪」になっている行を表示します。

       

      Option2:各項目の検索の条件を変更可能

      各項目の検索は「完全一致」と「部分一致」より選択できます。

      各項目の検索:「完全一致」

      例えば、会社の列に「Ama」という値を入れた場合は、会社が「Ama」であるセルのみを表示します。下記の場合はそのようなデータが存在しないため「検索結果が見つかりません。」というメッセージが表示されます。

      各項目の検索:「部分一致」

      例えば、会社の列に「Ama」という値を入れた場合は、会社に「Ama」が含まれるセルを表示します。下記の場合は「Amazon」というデータが「Ama」が含まれており検索対象となるため、当該データのみ表示されます。

       

      Option3:関連したデータを検索可能

      検索結果に関連する値を表示させるかは「関連一致を表示」と「関連一致させない」より選択できます。

      関連データの表示:「関連一致を表示

      例えば、会社の列に「Amazon」という値を入れた場合は、会社が「Amazon」であるセルが表示されます。その際に事前に設定した項目において同一の値が存在した場合は、当該セルの行も表示させます。

      下記の場合は、会社が「Amazon」で検索した行において、管理番号が「NNA1」の行(10行目)が他にも存在した(40行目)ため、当該行も表示されています。

      事前に設定する部分は、<setting>シートの「関連一致の対象となる列」にて列名を入力します。

       

      関連データの表示:「関連一致をさせない

      例えば、会社の列に「Amazon」という値を入れた場合は、会社が「Amazon」であるセルが表示されます。その際に事前に設定した項目において同一の値が存在している場合でも、当該セルの行は表示させません。

       

      Option4:検索文字を一括で削除可能

      検索ワードに入力した文字は「Delete」ボタンをクリックすることで一括で削除できます。

       

      ご利用に関するQ&A

      本ツールはどのように取得できますか?

      当記事内の「本ツールのダウンロードはこちら」よりマクロ付きExcelファイルがダウンロードができます。

      ※有料コンテンツの場合は、ご購入後にツールのダウンロード、VBAソースコードの確認ができます。

      ツールの使い方等のサポートを受けることができますか?

      当サイトでは早期対応の使い方サポートサービスを提供しておりますので、使用方法等が分からない場合でも安心してご利用いただけます。

      簡易的な内容ですと、当記事のコメント欄よりお問い合わせください。またはサイト最上部にあります「お問い合わせフォーム」より不明点をお問い合わせください。

      ※早期対応は有料コンテンツをご利用いただいた方限定のサービスとなっております。

      マクロの実行がブロックされてツールが使用できない場合はどうしたらいいですか?

      本ツールは利用時に各環境の設定により、マクロの実行がブロックされる可能性があります。

      マクロ実行の許可は(別記事:マクロのブロックを解除する方法)を参考に進めて下さい。

      なお、上記を実施しても解除できない場合はマクロを含まないExcelファイルと必要なVBAソースコードを別途ご案内いたします。

      返金をお願いしたい場合はどうしたらいいですか?

      ご購入後の24時間以内なら返金可能です。

      その際は、サイト最上部にあります「お問い合わせフォーム」よりご連絡ください。

      ※有料コンテンツのみ

       

      ご利用上の注意事項

      本ツールはMicrosoft Excelのマクロ機能を用いて、プログラミング言語「VBA」にて作成しております。ご利用に関しては、以下の注意事項をご確認ください。

       

      • 本ツールの開発環境は、OS:Windows10 、Excelのバージョン:Microsoft 2016、Microsoft Office 365となっており、当該環境では動作確認ができていますが、他の環境での動作は完全には確認できていません。
      • 本ツールは利用時に各環境の設定により、マクロの実行をブロックする可能性があります。マクロ実行の許可は(別記事:マクロのブロックを解除する方法)を参考に進めて下さい。
      • 本ツールの利用で発生した問題の責任は負いかねます。事前に使い方をテスト、理解した上で、ご利用ください。
      • 本ツールはバージョンアップに伴い、ツール自体の仕様が変更になる可能性やアップデートされる可能性がございます。予めご了承ください。
      • ツールおよびプログラムの著作は当サイトを管理しております「デジたわ」にあります。無断での転載・再販・配布・共有は固く禁止しております。

       

      時短ツールの特徴と紹介

      『時短ツールラボ』では本ツール以外にもExcelマクロを利用した時短ツールを複数ご用意しております。

      今後も随時新規で開発、公開していきますので是非ご覧ください。

      全ツールはこちら(時短ツールラボ)からご確認ください。

       

      時短ツールラボのツールの特徴

       

       

      商品は全て買い切り

       

      販売されるExcelマクロのツールは全て月額料金が発生しない「買い切り型」となっています。ランニングコストの心配をせずにツールを使用いただけます。

       

      無料ツールもご用意

       

      初めての方でも安心してご利用いただけるように「無料」で使用できるツールも多数用意しております。ツールの使用感を確かめたうえでご購入いただけます。

       

      使い方のサポートが無料

       

      有料ツールをご利用いただいた方限定で早期対応の使い方サポートサービスをご用意しております。初めてExcelマクロツールをご利用される方も安心ください。

       

      返金制度あり

       

      ご購入いただいてから24時間以内にご返金の申請をした場合は、全額返金させていただく返金制度もご用意しておりますので、ご安心ください。

       

      ソースコードを閲覧可能

       

      ツールをご利用いただいた方限定でVBAソースコードをご確認いただけます。ご自身でマクロ開発、VBAプログラミング学習をされる際にご活用ください。

       

      ⑥ 自由にカスタマイズ可能

       

      マクロを含んだExcelファイルとVBAソースコードはご自身で使いやすいようカスタマイズ可能です。(※Excelファイル、VBAソースコード等の商用利用は不可となります。)

      本ツールのダウンロードはこちら

      本ツールのダウンロード、VBAソースコードの確認等をする場合は、下記より500円でご購入ください。

      【Excel VBA】テーブル内のデータを項目毎に検索して関連データも表示するツール

      ※ダウンロードした本ツールを開くことができない場合は、マクロのブロックを解除する方法より
      本ツールを開くことができるよう設定を変更してください。

      正常に動作しない場合は、当記事のコメント欄または「お問い合わせフォーム」よりご連絡ください。

       

       

       <本ツールが業務効率化や時短につながりましたら、下のグッドボタンを押していただけたら幸いです>

      コメントはこちら

      1. KANA より:

        管理人RH様

        改良版のツールのページまでできており驚きました!
        緊張と期待でじっくり設定を行いまして、まさにイメージ通りのツールとなり、
        こんなことができてしまうとは…と、とても感動感激しております(泣)

        ご対応いただきましたこと、心から感謝申し上げます。
        このような素晴らしいツール、沢山の方に使用いただけるのではないでしょうか(^^)

        コメントの返信も、ツールの解説も、私のような者でも分かり易く丁寧で
        とても嬉しく思っております。
        もし使用しながら不具合が発生した際はご相談させていただくことがあるかもしれませんが
        よろしくお願いいたします。

        一点確認でございます。
        使用に全く問題ないと思うのですが、
        結果表示について、
        「関連一致の対象となる列」を「D」としていた場合、
        検索時にDへ入力し結果が複数表示されると「一番上が青色」で「以降が赤色」という表示になりますが、
        これは仕様ということでよろしいでしょうか。

        恐れ入りますがご教示いただければ幸いです。

        この度は素晴らしいツールを本当に本当にありがとうございます!!

        • RH より:

          管理人RHです。
          KANAさん、コメントありがとうございます。

          イメージ通りのツールになったようで、とても嬉しく思います。
          もし使っていて不具合があったり、こんなツール欲しいななどありましたらコメントまたは問合せ頂ければ対応いたしますので、気軽にコメントください。^^

          また一点確認で言っていただいた内容ですが、仕様ではなく、不具合でした。。。
          申し訳ありません。
          対応しましたので、再度VBAソースコードをコピーしていただけますと検索対象となった場合は一番上も赤色表示になるかと思いますので、ご確認ください。

          宜しくお願いします。

      2. KANA より:

        管理人RH様

        ご対応いただきましたVBAソースコードを再コピーさせていただきました!
        こういうことも修正できてしまうものなのですね、、(感動)

        心遣いもいただきましてありがとうございます(^^)
        重ねまして、素晴らしいツールをありがとうございます!!

      3. KANA より:

        大変お世話になります。またまたすみません、
        可能でしたらご教示いただきたく思いコメントさせていただきます、

        こちらのツールを大変便利に使用させていただいています!!
        ありがとうございます。

        現在、1ファイル(ブック)の中の
        「シート(A)&セッティングシート(A)」(シート(A)にロック)にて使用している状態ですが、
        同じブックの中に複数のシートを用いて、
        「シート(B)&セッティングシート(B)」(シート(B)にロック)
        「シート(C)&セッティングシート(C)」(シート(C)にロック)



        というように、
        複数のカテゴリごとに分けて使用してみたいと思った次第です。
        セッティングシートを非表示にすれば、それぞれカテゴリごとの検索ツールとなりますので、
        このように使用するにはどう行ったらよろしいのでしょうか、
        (シートごとに独立した検索ツールというイメージです)

        ちなみに、カテゴリごとにシートを分けた場合、
        9列目の項目の数がシートごとに違っていても問題ないでしょうか。
        (シートごとに独立した検索ツールというイメージです)

        編集不可するためのシートのロックは、それぞれでも、全てのシート一括でも構いません。

        大変恐れ入りますが、
        このようなことが可能でしたら何卒よろしくお願いいたします。

        • RH より:

          管理人RHです。
          KANAさん、コメントありがとうございます。
          返答が遅くなりました。

          一つのExcelファイル内でカテゴリ毎に複数シートに分けて、項目毎検索ツールを使用するイメージだと思いますが、その場合は下記を行ってください。

          <前提条件>
          ・シートとして「ツール1(Sheet1)」「setting1(Sheet2)」「ツール2(Sheet3)」「setting2(Sheet4)」がある状態と仮定します。

          ❶ソースコードのコピペする場所を「Module1」ではなく、「ツール1」(※「Sheet1」)にコピペしてください。
          ❷11行目の「●setting」を「setting1」に変更してください。
          ❸「ツール1」シートにある検索アイコンとフィルター解除アイコンに「Sheet1」の検索とフィルターアイコンのマクロ登録をしてください。

          ※以下同じ事をツール2に対して行います。
          ❹ソースコードのコピペする場所を「Module1」ではなく、「ツール2」(※「Sheet3」)にコピペしてください。
          ❺11行目の「●setting」を「setting2」に変更してください。
          ❻「ツール2」シートにある検索アイコンとフィルター解除アイコンに「Sheet3」の検索とフィルターアイコンのマクロ登録をしてください。

          これで二つの独立した検索ツールとして動作すると思います。

          イメージ通りに動作しない場合は、改めてコメントください。

          • KANA より:

            管理人RH様
            ありがとうございます!!
            複数のシートを独立したツールにすることができました!!

            恐れながら、パスワード設置についてご教示いただきたく思います。
            それぞれのシートの330行に、別のツールでご教示いただいたコード入れても機能しませんでした。(下のコード)
            —————–
             Private Sub Workbook_Open()
              Worksheets(“シート名”).Protect Password:=”パスワード”, UserInterfaceOnly:=True, DrawingObjects:=False, Contents:=True
             End Sub
            —————–

            こちらのツールを複数(2つ以上)のシートで使用する場合、
            どの箇所にどのようなコード入れると、
            上記のコードのように機能する パスワードを各シートに設置できますでしょうか、ぜひご教示をお願いいたします。
            (全て同じパスワードで構いません)

            よろしくお願いいたします。

            • RH より:

              管理人RHです。
              KANAさん、コメントありがとうございます。

              おっしゃっていただいたことをやる場合は、以下を行ってください。

              ❶必要な箇所のみ(ツール1シートの9行目以降、ツール2シートの9行目以降)をロックする。
              ❷「ThisWorkbook」内に以下を入力する。
               Private Sub Workbook_Open()
                Worksheets(“ツール1″).Protect Password:=”password”, UserInterfaceOnly:=True, DrawingObjects:=False, Contents:=True
                Worksheets(“ツール2″).Protect Password:=”password”, UserInterfaceOnly:=True, DrawingObjects:=False, Contents:=True
               End Sub

              以上でできると思います。
              出来なかった場合は、お手数ですが改めてコメントをください。

              • RH より:

                管理人RHです。
                追記となります。

                実際に複数シートにコピーして作ってみたところ、ある注意点が判明しました。

                単純にシートをコピーした(例でいう「ツール2」)だけでは、検索オプションにあたる部分が正常に動作しない可能性があります。
                (※検索オプションとは、「セル内の検索条件」「各項目の検索」「検索結果に関連する値を表示させるか」の機能)

                理由としては、検索オプションはExcelのスライサーという機能を利用しており、settingシートの内容をみて検索オプションが動作する仕組みになっています。
                単純に「シート2」シートをコピーしただけでは、「ツール2」シートの検索オプションは「setting1」シートを内容を見てしまう可能性があるので、それを「setting2」シートを見るように変更する必要があります。
                変更方法としては「setting2」シートのスライサーを新規作成することになるのですが、手順が若干複雑のためサイト上部にあるお問い合わせフォームよりお問い合わせいただければ、そちらから詳細をお伝えいたします。

                ご検討のほどよろしくお願いします。

                • KANA より:

                  管理人RH様

                  パスワード設置の件、ありがとうございます!!
                  問題無くできました(^^)
                  大変助かりました!

                  settingシートのスライサーを新規作成する件ですが、
                  検索用のシートを テストで3つ分作成(settingシートも3つ分作成)しましたが、問題なさそうに見えていまして、
                  今週、正式なデータで試してみたいと思っていますので
                  問題ありましたらフォームよりお問い合わせさせていただきます。

                  ご配慮いただきましてありがとうございます。
                  よろしくお願いいたします!

      4. RH より:

        管理人RHです。
        KANAさん、コメントありがとうございます。

        パスワードとスライサーの件、問題なく動作したようで良かったです。
        スライサーについては杞憂だったかもしれません。

        また動作しない場合などがありましたら、遠慮なくお問合せください。

        • KANA より:

          管理人RH様
          こんばんは、いつもお世話になります!

          Sub 検索_Click()
          のところに
          ActiveWindow.ScrollRow = 10
          を挟んだら大丈夫そうです!

          これで合ってますでしょうか(^^;)

          • RH より:

            管理人RHです。
            KANAさん、コメントありがとうございます。
            返答が遅くなってしまいました。

            当件はスクロールを10列目に戻って表示させるという件で合ってますでしょうか?
            その意味ですと、検索_Clickの終盤に「ActiveWindow.ScrollRow = 10」を入れ込めば動作しますので合っています!

      5. KANA より:

        管理人RH様
        お世話になります!

        その後こちらのツールに、ご教示いただいた設定も取り入れまして
        正式なデータで3シート分作成し稼働させましたところ、
        (おそらく)スライサーというものを新規作成しなくてもうまく動いてくれているようです。
        と言いますか、とても便利で感動しています!!
        今後使わせていただきます(^^)

        一点、可能かご相談ですが、
        9列目まで(項目列まで)のウインドウ枠を固定して使用した場合、
        10列目以下を下の方までスクロールした状態で
        (例えば100列くらいまでスクロールした状態で)検索をかけると
        結果が当然10列目から表示するため、
        結果が出ていないような感じに見えてしまいまして(スクロールで10列目にいけば結果は見えます)

        これを、スクロールされていても
        「検索結果を出すとき10列目に戻って表示」させるということは可能でしょうか、

        仕様を外れたお話になりましてすみません、
        よろしければお願い申し上げます。
        よろしくお願いいたします。

        • RH より:

          管理人RHです。
          上記のコメント(2023年11月17日 9:04 AM)の内容で合ってますでしょうか。

          • KANA より:

            管理人RH様!!
            すみません、変なところにコメントが入ってしまいましたm(_ _)m

            他の閲覧者さんが混乱されると申し訳ありませんので、一旦全てクリアにしていただいて構いません(汗)

            本当にたくさんのご教示とご配慮に感謝いたしております!!
            素晴らしいツールです、ありがとうございます!

            • RH より:

              管理人RHです。
              KANAさん、コメントありがとうございます。

              いえいえ大丈夫ですよ。
              また何かありましたら、コメント等いただければ幸いです。