Excelのセルを検索する

<< エクセルVBAのセル操作一覧 :前の記事

こちらでは、RangeオブジェクトActivateメソッドを利用して、Excelのセルを検索する方法について解説しています。

エクセルVBAではセルの検索にFindメソッドとFindNextメソッドが容易されています。Findメソッドは指定したセル範囲から引数に指定した文字列を含むセルを探し、そのセルのRangeオブジェクトを返します。FindNextメソッドは、Findメソッドで検索した条件を使って引き続き検索するメソッドです。Findメソッドと同様に該当するセルが見つかった場合、そのセルのRangeオブジェクトを返します。

メソッドとは、オブジェクトを操作する命令文のことでオブジェクトの動作になります。 メソッドを利用するにはオブジェクト名とメソッド名の間に「.(ピリオド)」で結んで記述します。

オブジェクト名.メソッド名

目次

はじめに

こちらでは、Activateメソッドを利用したExcelの指定したセルをアクティブにする方法について解説します。今回は、RangeオブジェクトのActivateメソッドを利用しますが、ActivateメソッドはRangeオブジェクト以外でも利用されますので、どのオブジェクトで利用できるかも確認してください。

利用するメソッドについて

今回利用するメソッドは以下になります。

  • Activateメソッド

Activateメソッドとは

RangeオブジェクトのActivateメソッド指定されたセルをアクティブにします。Activateメソッドには引数はありません。

Range("セル範囲").Activate

Excelのセルを検索するサンプルコード

今回のVBAコードはExcelの指定したセルを検索するマクロになります。


Sub sample()

    Dim myRng As range
    Dim myAdrs As String
    
    Set myRng = Cells.Find("VBA")
    
    myAdrs = myRng.Address
    
    Do
    
        MsgBox "検索中"
    
        Set myRng = Cells.FindNext(myRng)
    
    Loop Until myRng.Address = myAdrs

End Sub

実行結果

「C3」セルを検索します。

エクセルVBAのActivateメソッドの結果1

解説

sampleプロシージャSubステートメントに引数は設定されていません。Findメソッドで文字列「VBA」をセル全体から検索し、見つかったセルをRangeオブジェクト変数「myRng」に格納します。続きの検索は同様にmyRngを使ってFindNextメソッドを使用しますが、FindNextメソッドは指定した範囲の検索が一通り終わるとその範囲の最初に再度戻って検索を行う仕様になっています。

よって最初に見つけたセルの番地を変数「myAdrs」に代入しておけば、Do~Untilステートメントで最初に見つけたセルが再度出てくるまでループ処理を繰り返します。FindNextメソッドに渡す引数は「myRng」になりますので注意してください。最後はEndステートメントを利用してsampleプロシージャを終了させます。

FindメソッドとFindNextメソッドは引数の設定によって、多様な検索を行うことができます。例えば、引数「LookAt」では完全一致か部分一致か指定できます。また、引数「MatchCase」では大文字と小文字を区別するかどうかを指定できます。引数は他にも種類がありますので、より複雑な検索が可能となります。

まとめ

今回は、rangeオブジェクトのActivateメソッドを利用して、Excelの指定したセルをアクティブにする方法について解説しました。今回は引数がないメソッドでしたのですぐに理解できたかと思います。次回は、エクセルVBAでExcelのセルを選択する方法について解説します。

エクセルVBAのセル操作一覧

    次の記事: エクセルVBAでExcelのセルを選択する >>

    Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

    近田 伸矢, 植木 悠二, 上田 寛

    IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

    • このエントリーをはてなブックマークに追加
    ExcelのVBAについてのQ&A掲示板

    ↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

    VBAのInternetExplorer操作入門

    ↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

    VBAのIE制御入門RSS

    RSSフィードを登録すると最新記事を受け取ることができます。

    VBAIE操作のスカイプレッスン

    エクセルVBAのステートメント

    こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

    エクセルVBAのオブジェクト

    こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

    エクセルVBAのプロパティ

    こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

    エクセルVBAのメソッド

    こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

    エクセルVBAのイベント

    こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。