【ExcelVBA入門】MATCH関数を使ったセル範囲を検索する方法を徹底解説!

皆さんは、VBAでセル範囲を検索する方法を知っていますか?

セル範囲を検索する方法の一つに、MATCH関数があります。VBAでワークシート関数を使えば、ExcelのMATCH関数をVBAで使うことができるので、Excelで使ったことがある方にもおすすめです!

そこで今回は、

  • MATCH関数を使う方法とは
  • INDEX関数をつかった応用テクニック
  • 応用的な検索に使えるFindメソッドとは
  • といった基礎的なことから、応用的な方法まで、徹底的に解説します!

    MATCH関数とは

    MATCH関数とは、範囲内から指定した値を検索して、上から数えた位置を求める関数です。VBAではワークシート関数を使って、ExcelのMATCH関数を使うことができます。使い方は以下の通りです。

    使い方:

    サンプル:

    「侍エンジニア」という文字列をA1 ~ B5セルの範囲で検索して、見つかった位置を取得しているサンプルです。第3引数の検索方法に入力する値によって、検索方法が変わるので少し注意が必要です。

    • 0 :検索範囲から完全一致で検索
    • 1 :検索範囲から近似値以下で最大値を検索
    • -1:検索範囲から近似値以下で最小値を検索

     

    1、-1を選択する場合は、データを事前に以下のように並べ替えておく必要があるので、更に注意が必要です。

    • 1 :データを事前に昇順
    • -1:データを事前に降順

    ほとんど0を使うケースが多いですが、近似値で検索するためにMATCH関数を使う場合は注意してくださいね。

    サンプルコード

    次に、サンプルコードをもとに具体的な使い方を解説します。

    事前に用意したシートの内容:

    画像:サンプルデータ

    サンプルコード:

    実行結果:

    画像:実行結果

    このように、検索した結果の位置を簡単に調べることができます。行を挿入する場合、データをコピー・削除する場合など覚えておくと便利です。

    INDEX関数を使ったVLOOKUP風の使い方とは

    Excelをよく使う方だと、VLOOKUP関数は馴染みがある方が多いのではないでしょうか。INDEX関数とMATCH関数を応用すると、VLOOKUP関数と同じ処理をとても速く動かすことができるので、合わせて覚えておくのがおすすめです。

    以下記事で詳しく解説しているので、気になる方は見てみてくださいね!

    脱VBA初心者!VLOOKUP関数の基礎の基礎をわかりやすく解説!
    更新日 : 2019年4月3日

    高度な検索がしたい方におすすめなFindメソッドとは

    MATCH関数は便利かつ処理が速いのでおすすめなのですが、完全一致 or ざっくりとした近似値しか調べることができません。高度な検索がしたい場合は、Findメソッドがおすすめです!Findメソッドの使い方については以下記事で詳しく解説しているので、気になる方は見てみてくださいね!

    【VBA入門】Find、FindNextで検索(完全一致、部分一致、複数一致)
    更新日 : 2019年4月18日

    まとめ

    今回は、VBAでMATCH関数を使ってセル範囲を検索する方法について解説しました。データを検索してセルの位置を調べるケースはよくあるので、覚えておくと便利です。

    別記事として紹介したVLOOKUP関数、INDEX関数を応用した方法、Findメソッドの使い方も合わせて覚えておくと、応用が利くのでおすめです!ぜひ、使ってみてくださいね!

    LINEで送る
    Pocket

    最短でエンジニアを目指すなら侍エンジニア塾

    cta_under_bnr

    侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

    あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

    無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

    無料体験レッスンの詳細はこちら

    書いた人

    Sanshiro Wakizaka

    Sanshiro Wakizaka

    フリーランスエンジニア兼ライターのワキザカ サンシロウです。
    ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

    プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説