VBA Findメソッドについて~関数の解説と使用例~

VBA Findメソッドについて~関数の解説と使用例~

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

Ecxelの標準機能である検索機能を使ったことはありますか?ExcelVBAでも似た処理を行うことができます。ここでは、Findメソッドの基本的な解説を行っていきます。


1.Findメソッドについて

1-1.Findメソッドとは

Findメソッドとは、指定したセル範囲内で特定の情報を検索する関数です。Excelでの「Ctrl F」キーで表示される下記の検索機能とほぼ同じ機能が使えます。

1-2.Findメソッドの構文

Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

設定するオプション値は、以下の通りです。

表1.オプション一覧
オプション一覧

Excelの検索機能で使用するウィンドウで、VBAの検索オプションと同じ機能が多くあり、オプションを吹き出しにしています。

図1.Excelでの検索とVBAの検索オプション比較
Excelでの検索とVBAの検索オプション比較


2.Findメソッドの使用例

2-1.基本的な使用例

2-1-1.初期値設定

下記表を使って、検索のVBAを実行します。

表2.検索

愛知県

広島県

新潟県

東京都

愛媛県

香川県

神奈川県

徳島県

茨城県

高知県

青森県

栃木県

岡山県

佐賀県

静岡県

奈良県

沖縄県

埼玉県

石川県

富山県

岩手県

三重県

千葉県

福井県

岐阜県

山形県

大阪府

福岡県

宮崎県

山口県

大分県

福島県

宮城県

山梨県

長崎県

兵庫県

京都府

滋賀県

長野県

北海道

熊本県

鹿児島県

鳥取県

和歌山県

群馬県

秋田県

島根県

 

 

Sub sample01()

    Dim sampleRange As Range    '検索するデータ
    Dim result As Range          '検索結果を格納する
    
    Set sampleRange = Range("A1:E10")
    keyWord = "京都"
    '検索ワードを「京都」、完全一致で検索実施
    Set result = sampleRange.Find(keyWord, LookAt:=xlPart)
    
    If result Is Nothing Then
        MsgBox "'" & keyWord & "'はありませんでした"
        Exit Sub
    Else
        Dim row As Integer
        row = result.row
        MsgBox "「" & result.Value & "」がヒットしました。"
    End If

End Sub

実行結果:

実行結果1

2-2.使用で注意する点

第二引数以降を設定して検索を行うと、引数の設定が保存されます。別の設定で検索を行う際に、前回設定した引数を省略した場合は、前回設定した引数が反映されます。

例として、表1を対象として下記の検索オプションを指定して「京都府」を検索する処理を連続で行います。

1回目の検索のオプション設定

表1に対して、下記オプションを指定して検索

  • 検索文字を「京都」
  • 「部分一致」
  • 検索順を「列を下端まで検索してから次の列を検索」

実行結果:

実行結果2

2回目の検索オプション設定

表1に対して、下記オプションを指定して検索

  • 検索文字を「京都」
  • 検索順を「行を右端まで検索してから次の列を検索」

実行結果:

実行結果3

1回目の検索オプション「部分検索」が残っているため、「東京都」が検索結果となってしまいます。使用するたびに、毎回オプションを明示的に指定する必要があります。


3.最後に

Findメソッドは、オプションを明示的に指定することで用途が広がります。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中