Home » Excel VBA Rangeオブジェクト » セル検索 » Findで見つけた他の列のセルを選択するExcelマクロ

Findで見つけた他の列のセルを選択するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「cells.find 見つけた行のa列を選択する」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBA(Visual Basic for Applications)で、Range.Findメソッドで検索を行ってセルが見つかったときに、そのセルではなく同じ行のA列のセルを選択するには、どのようなコードを書けばいいのかを探し検索キーワードです。

「vba findで見つけたセルと同じ行で違う列のセルを指定する」
という検索も、同じようなコードを探していらしたのでしょう。

[スポンサードリンク]

検索を行ってみつかった同じ行のA列のセルを選択するサンプルマクロ

参考になりそうなシンプルなマクロをご紹介しておきます。

Sub 北海道という文字列を検索してA列のセルを選択する()
 Dim rng As Range

 Set rng = Cells.Find(What:="北海道")

 If rng Is Nothing Then
  MsgBox "見つかりませんでした。"
 Else
  Cells(rng.Row, "A").Select
 End If
End Sub

上記のマクロを実行すると、アクティブなシートで「北海道」という文字列の入力されているセルを探して、みつかったときに、同じ行のA列のセルが選択されます。

サンプルマクロの解説

基本構造は、Range.Findで検索して行を選択するExcelマクロと同じです。

違うのは、Elseキーワード後のオブジェクト式、
  Cells(rng.Row, "A").Select
の部分です。

検索を実際に行う、
 Set rng = Cells.Find(What:="北海道")
の行が実行されセルが見つかった場合には、オブジェクト変数・rngに見つかったセルを表すRangeオブジェクトがセットされているので、RangeオブジェクトのRowプロパティを使った「rng.Row」というオブジェクト式で、そのセルの行番号が取得できます。

「cells.find 見つけた行のa列を選択する」
ということでしたので、「rng.Row」と文字列「A」をCellsプロパティの引数に指定して、Selectメソッドで選択を行っています。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » セル検索 » Findで見つけた他の列のセルを選択するExcelマクロ

「セル検索」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.