この記事では、セルの値を使用して、毎月変わるセルを選択する方法をご紹介します。
セルの値を使用して毎月変わるセルを選択する
下図のように、セルB1に「9月」と入力されているとします。
このセルの値を使用して、9月の実績のセルM6を選択してみたいと思います。
前提として、セルB1と表の月名の書式は一致しているものとします。
表の月名を半角数字+月で入力している場合は、セルB1も半角数字+月で入力
表の月名を日付形式で入力している場合は、セルB1も日付形式で入力
サンプルコード
Sub 該当月のセルを選択()
Dim Rng As Range ①
Dim targetMonth As String ②
Dim r As Long ③
‘ セルB1の値を取得
targetMonth = Range(“B1”) ④
‘ セルB4からO4の範囲でループ
For Each Rng In Range(“B4:O4”) ⑤
‘ セルB1の値と同じ値を見つけたら
If Rng.Value = targetMonth Then ⑥
‘ 該当セルの列番号を取得
r = Rng.Column ⑦
‘ 該当列の隣の列の6行目を選択する
Cells(6, r + 1).Select ⑧
End If
Next
End Sub
解説
■変数の宣言
① Rng:セルの範囲を指定するための変数
② targetMonth:対象月を格納する変数
③ r:該当する列番号を格納する変数
■対象月の取得
④ targetMonth = Range(“B1”):セルB1の値をtargetMonthに代入します。
■対象列の検索とセルの選択
⑤ For Each Rng In Range(“B4:O4”):セルB4からM4の範囲でループを開始します。
⑥ If Rng.Value = targetMonth Then:範囲内のセルの値とセルB1の値を比較し、一致したら次のステップへ進みます。
⑦ r = Rng.Column:一致したセルの列番号をrに格納します。
⑧ Cells(6, r + 1).Select:rに格納した列 (L列) の1つ隣の列 (M列) の6行目を選択します。
あとがき
このVBAコードは、特定の月をセルB1から取得し、その月の列を見つけてから、実際に作業したいセルを選択するコードとなっています。
記事を通じて、月次の報告書や集計作業を効率的に進める手段として参考にしていただければ幸いです。