【Excelマクロ】短くてもわかりやすい!Excel VBAのシンプルなコードの書き方

なぜ「短くてわかりやすいコード」が大切か?

VBAに限らず、プログラミングでは「誰が読んでも理解しやすいコード」が理想です。

特にExcel VBAでは、

  • 他の人が引き継いで使うことが多い
  • 数か月後に自分で読み返しても理解できないことがある

といった実務上の事情から、見やすくて短く、意味が伝わるコードを書くことがとても重要です。

初めての方でも意識できる「短くてもわかりやすいVBAコードの書き方」を具体例とともに解説します。

やることの意味

コードを短くするメリットは次のようなものがあります。

  • コードをシンプルに保つことで追加・修正がしやすい
  • 不要な記述を減らすことでコードが見やすくなる
  • 実務でもチーム内で共有・修正しやすくなる

書き方の基本ルール

次に、書きやすさと読みやすさのバランスを取るために意識すべき基本ルールを紹介します。

  • 意味のある変数名を使う(例:rowNum
  • 処理をまとめて「With構文」で書く
  • 処理対象の範囲はあらかじめ変数に入れておく
  • コメントは短く要点だけ書く

例1)セルに値を入力する

例)シートをそのまま書く

Sub Sample1()
    Worksheets("Sheet1").Range("A1").Value = "山田"
    Worksheets("Sheet1").Range("B1").Value = "太郎"
End Sub

改善例)With構文でまとめることでシンプルで見やすい

Sub Sample1_Clean()
    With Worksheets("Sheet1")
        .Range("A1").Value = "山田"
        .Range("B1").Value = "太郎"
    End With
End Sub
解説
  • With構文を使うことで、何度も Worksheets("Sheet1") と書かずに済みます。
  • 読む側も「どのシートに書いているのか」が明確にわかります。

例2)条件分岐とコメント

例)左詰で、内容の記載がない

If x = 1 Then
DoSomething
End If

改善例)コメントを追加し、インデント(字下げ:文字をずらす)を行う

' xが1のときだけ処理を実行する
If x = 1 Then
    DoSomething
End If
解説
  • 条件分岐は、初めのうちは1行にまとめず、上記のように書く方がわかりやすいです。
  • コメントには「処理の理由」や「条件の意味」を簡潔に書くと親切です。

よくあるコードを短くするための改善案

紹介はしますが、これらの省略表現は、慣れてから使う方が良いです。

理由がわからずに省略してしまうと、なぜそのようになっているのかが理解できなくなるので、初めのうちは、正確で丁寧なコードを心がけましょう。

BeforeAfter
If flag = True ThenIf flag Then
If flag = False ThenIf Not flag Then
Range("A1").SelectSelection.Value = 1Range("A1").Value = 1
  • TrueやFalseについては、省略することができます。Trueについては、「=True」を省略し、Falseの時は「Not」を使うことで否定を意味します。
  • マクロの記録などでは、最初に「セルを選択」し、「選択されたセルの値」と2段階になっていますが、Range(“A1”).Selectと「A1を選択」と直接書くことができます。

まとめ

プログラムを書くときに最も大切なのは「後から読んでも意味がすぐにわかること」です。

特に初めのうちは、処理の流れが明確になるよう、丁寧で正確なコードを書くよう心がけましょう。省略形やテクニックは確かに便利ですが、それが原因で「何をしているのかわからない」コードになってしまっては本末転倒です。

まずは基本的な書き方を身につけて、そこから少しずつ、短くする書き方に変更していくのが理想です。

  • コードは「誰が見ても意味がわかる」ことが大切
  • 初めのうちは、省略せずに丁寧に書く方が理解しやすい
  • 慣れてきたら、少しずつ短く整えていくのがベスト
  • 迷ったら「読み返したときに自分が理解できるか」を基準にする

このような姿勢で取り組むことで、読みやすく、ミスの少ないVBAコードを書けるようになっていきます。

コメント