Windows版Excel2016「ExcelマクロでFindしたセルをすべて選択するにはどうしたらいいのでしょうか?」といったご質問をいただくことがあります。RangeオブジェクトのFindメソッドで検索を行って、ヒットしたセルをすべて選択したいという要望です。[スポンサードリンク]Find・FindNextで検索したセルをすべて選択するサンプルマクロRange.Findメソッドは、検索を行って見つかった1個のセルを表すRangeオブジェクトを返すだけですから、全部を選択するには、Range.FindNextメソッドと組み合わせてループ処理を行う必要があります。"見つかりませんでした。Sub上記のマクロを実行すると、アクティブシートで「北海道」という文字列の入力されたセルを検索して、みつかったすべてのセルが選択されます。基本構造はこれまでにご紹介してきた、Range.FindとRnge.FindNextを組み合わせたマクロと同じです。fnd)と、ループを抜けたあとのfnd_all.Selectです。fnd)は、ApplicationオブジェクトのUnionメソッドを使って、オブジェクト変数・fnd_allが表すセルを、どんどん増やしています。全部のセルを見つけ終わった時点では、オブジェクト変数・fnd_allには、みつかった全てのセルを表すRangeオブジェクトがセットされた状態になっていますから、ループを抜けてからRangeオブジェクトのSelectメソッドで選択を行っています。インストラクターのネタ帳Range.lFind・Range.FindNextで検索して行をすべて選択するExcelマクロをご紹介しています。VBAの場合、Do~Loop文でなければ書けない処理が少ないため、はじめに学習するループ処理として、For~Next文をおすすめします。Officeの使い方などを紹介し続け(2012年頃からはVBA関連記事が多め)、毎日5万人の方にご覧いただいています。