エクセルマクロ(EXCEL VBA) その20 検索結果の隣のセルを選択(FindとOffset)
Offsetで隣のセルを選択
前回、Findを使って文字列を検索し、検索結果のセルを選択できるようになりました。
今回は、その選択したセルの右隣とかを選択できるようになるOffsetについてご紹介します。
こちらの作品リストがあったとします。
マクベスと書いてあるセルを選択するには、
Cells.Find("マクベス").Select
とすればいいんでした。
これを実行すると、
マクベスのあるセル(A5)を選択できました。
この右隣(B5)を選択するために、マクロを少し修正します。
Cells.Find("マクベス").Offset(0, 1).Select
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 別ファイルを参照してコピー
(文:森脇孝/エントレ)