エクセルマクロ(EXCEL VBA)

エクセルマクロ(EXCEL VBA) その20 検索結果の隣のセルを選択(FindとOffset)

Offsetで隣のセルを選択

前回、Findを使って文字列を検索し、検索結果のセルを選択できるようになりました。
今回は、その選択したセルの右隣とかを選択できるようになるOffsetについてご紹介します。

こちらの作品リストがあったとします。

作品リスト

マクベスと書いてあるセルを選択するには、

Cells.Find("マクベス").Select

とすればいいんでした。

マクベスを検索

これを実行すると、

マクベスを選択できた

マクベスのあるセル(A5)を選択できました。
この右隣(B5)を選択するために、マクロを少し修正します。

Cells.Find("マクベス").Offset(0, 1).Select

offsetを追加

Offset(0, 1)を間に追加したということですね。

これを実行すると、

一つ右を選択できた

このように、一つ右のセルを選択できました。

一方で、Offset(1, 0)に修正すると、

Cells.Find("マクベス").Offset(1, 0).Select

一つ下が選択できた

一つ下のセルを選択することができました。

同じように、

Cells.Find("マクベス").Offset(-1, 0).Select

とすると、一つ上のセルが選択できます。

 
Findで見つけたセルの隣に文字列を入力する

隣のセルが選択できるようになったので、Findで見つけたセルの隣に「◎」を入れてみましょう。

Cells.Find("マクベス").Offset(0, 1) = "◎"

と書いてください。

◎を入れる

これを実行すると、

マクベスの隣に◎を入れられた

マクベスの右隣に◎を入れられました。

例えば「住所録の名前で検索して、その10個右のセルにあるメールアドレスをコピーする」みたいなこともできるので便利に使えますね。

 
今回の最終的なコード

Sub tonari()
Cells.Find("マクベス").Offset(0, 1) = "◎"
End Sub

 

宿題-20
以下のファイルのように、1枚目のシートには「観劇リスト」、2枚目には「良かった公演リスト」があるとします。
「良かった公演リスト」にあるタイトルを参照して、元の「観劇リスト」のタイトルの右側に「☆」を付けてください。

エクセルファイルをダウンロード

エクセルマクロ(EXCEL VBA) その21 別ファイルを参照してコピー
 
(文:森脇孝/エントレ)

関連記事一覧