スライドショー

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

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

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

そこで今回は、

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

    MATCH関数とは

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

    使い方:

    WorksheetFunction.Match( 検索値 , 検索範囲 , 検索方法)

    サンプル:

    WorksheetFunction.Match( "侍エンジニア" , Range("A1:B5") , 0)

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

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

     

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

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

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

    サンプルコード

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

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

    画像:サンプルデータ

    サンプルコード:

    Sub Test()
      MsgBox WorksheetFunction.Match("侍エンジニア", Range("A1:A4"), 0)
    End Sub

    実行結果:

    画像:実行結果

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

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

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

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

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

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

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

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

    まとめ

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

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

    LINEで送る
    Pocket

    無料でSEからWebエンジニアへ転職しませんか?



    侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

    • システムエンジニアという職業だけどコードが書けない
    • 事務作業が多くスキルがないため将来が不安
    • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
    という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

    弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

    既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

    まずは無料体験レッスンを予約する

    書いた人

    Sanshiro Wakizaka

    Sanshiro Wakizaka

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

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

    おすすめコンテンツ

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

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