Excel(エクセル)VBAのFindメソッドで行番号を取得する方法をご紹介!

Excel(エクセル)の勉強方法のメイン画像 Excel(エクセル)

業務中に調べることの多い、Excel,Word,PowerPointなどのノウハウを発信していきます!

Biz Magic編集部をフォローする

Excel(エクセル)Findメソッドとは

皆さんExcel VBAのFindメソッドとはなにかをご存じでしょうか?FindメソッドとはVBAで検索や置換などの機能を提供するメソッドです。このメソッドを使用することで、指定した文字列を含むセルや範囲を検索し、該当するセルや範囲を返すことができます。

Findメソッドの戻り値はRangeオブジェクトかNothingです。Rangeオブジェクトとは、Excelワークシートのセルや範囲を表すオブジェクトであり、Findメソッドが検索対象の文字列を見つけた場合に、その文字列が含まれるセルの範囲を返します。Findメソッドは、戻り値としてRangeオブジェクトを返すため、そのオブジェクトに対して様々な操作を行うことができます。Rangeオブジェクトには、例えば以下のようなプロパティがあります。

  • Value: セルの値を取得したり設定したりすることができる
  • Address: セルのアドレスを取得することができる
  • Row: セルが属する行番号を取得することができる
  • Column: セルが属する列番号を取得することができる

この中のRowプロパティを使用することで、Findメソッドで見つかったセルの行番号を取得することができます。ただし、Findメソッドが見つからなかった場合には、戻り値としてNothingが返されます。今回の記事ではFindメソッドで行番号を取得する方法ご紹介していきます。

Excel(エクセル)VBAのFindメソッドで行番号を取得する方法

では、早速ですがExcel VBAのFindメソッドの戻り値をご紹介していきます。Excel VBAのFindメソッドは、指定された範囲内で指定された値を検索し、最初に見つかったセルを返します。このメソッドを使用すると、検索された値がどの行にあるかを取得することができます。

以下は、Findメソッドを使用して行番号を取得するためのコード例です。

Sub FindRowNumber()

    Dim searchValue As String
    Dim searchRange As Range
    Dim foundCell As Range
    Dim rowNumber As Long
    
    ' 検索する値を指定する
    searchValue = "Apple"
    
    ' 検索範囲を指定する(ここではA列からC列までの範囲)
    Set searchRange = Range("A:C")
    
    ' 検索を実行する
    Set foundCell = searchRange.Find(What:=searchValue, LookIn:=xlValues, LookAt:=xlWhole)
    
    ' 検索結果がある場合、行番号を取得する
    If Not foundCell Is Nothing Then
        rowNumber = foundCell.Row
        MsgBox  searchValue & " は " & rowNumber & "行目です。"
    Else
        MsgBox searchValue & "not found."
    End If
    
End Sub

このコードでは、検索する値をsearchValue変数に指定し、検索範囲をsearchRange変数に指定します。Findメソッドを使用して、foundCell変数に最初に見つかったセルを格納します。最後に、foundCell変数がNothingでない場合、Rowプロパティを使用して行番号を取得し、メッセージボックスに表示します。

注意点として、Findメソッドは、指定された範囲内で最初に見つかったセルを返します。したがって、検索値が複数のセルに存在する場合、最初に見つかったセルの行番号しか取得できません。また、検索範囲に空白が含まれている場合、Findメソッドは空白を最初に見つけたセルを返します。これに注意して使用する必要があります。

以上が、Excel VBAのFindメソッドを使用して行番号を取得する方法についてのコード例です。このFindメソッドはVBAでプログラミングを行う上で絶対に知っておくべきメソッドの一つです。今回の記事では簡単な行番号を取得する方法をご紹介しましたが、Findメソッドにはさまざまな引数があり部分一致や完全一致などで検索する方法など用途によって引数を変えていきます。興味がある方はFindメソッドの引数も調べてみてください。

Excelの操作方法は実際に手を動かし、身につけていきましょう

今の時代、様々な仕事でExcelを使用することがあるでしょう。今回はExcel VBAのFindメソッドで行番号を取得する方法についてご紹介しました。このような機能を使いこなすことができれば仕事にも役に立つので、実際に手を動かし、覚えていきましょう。

WordやExcelなどのOfficeツールでは便利なショートカットキーなどがたくさんあるのでよく使う作業に関してはショートカットキーを調べてみるのも効率よく仕事を進める上で大切なことなのでこれから実践してみましょう。

コメント

タイトルとURLをコピーしました