【Excelマクロ】コードを読む練習をしてみましょう

このコード、何してる?

今回は、VBAを始めたばかりの方が「実際のコードを見て意味をつかむ」練習ができるよう、クイズ形式で例題を紹介していきます。自分なりに考えてから解説を読むことで、コードを読み解く力が自然と身についていきます。

練習1

Sub CheckNames()

    Dim i As Long

    For i = 2 To 11
        If Cells(i, 1).Value = "" Then
            Cells(i, 2).Value = "未入力"
        Else
            Cells(i, 2).Value = "入力済み"
        End If
    Next i

End Sub

質問

  • このコードはどんな目的で使われていそうですか?
  • B列にはどんな値が表示されるでしょうか?

解説

  • 2行目から11行目までのA列をチェックしています。
  • A列のセルが空欄なら「未入力」、そうでなければ「入力済み」とB列に表示されます。
  • つまり「A列の入力状況を確認して表示するマクロ」です。

練習2

Sub SumData()

    Dim total As Double
    Dim i As Long

    total = 0

    For i = 2 To 11
        total = total + Cells(i, 3).Value
    Next i

    Range("D1").Value = total

End Sub

質問

  • どの列の値が対象ですか?
  • 合計はどこに出力されるでしょうか?

解説

  • C列(3列目)の2〜11行目を合計して、totalに格納しています。
  • 最終的にD1セルにその合計値が表示されます。
  • これは「C列の数値合計をD1セルに表示するマクロ」です。

練習3

Sub HighlightScores()

    Dim i As Long

    For i = 2 To 11
        If Cells(i, 2).Value >= 80 Then
            Cells(i, 2).Interior.Color = RGB(200, 255, 200)
        End If
    Next i

End Sub

質問

  • どのような条件で色が変わりますか?
  • どのセルが対象ですか?

解説

  • B列(2列目)のセルの値が80以上の場合、そのセルに薄緑色を設定します。
  • 条件付き書式のような処理をVBAで実現している例です。
  • これは「80点以上のセルを色で強調するマクロ」です。

まとめ

  • どのセルを対象にしているかを明確にする
  • 条件式が「何を判定しているか」を言葉にしてみる
  • 結果がどこに出力されるのかをチェックする

コードを見たとき、「こういう意図だろうな」と考えるクセをつけることで、他人のコードも怖くなくなります。

今後は、少しずつ応用問題にも挑戦していきましょう!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール