
正直、インデントを覚えるだけでもまじ見やすいコードができるので...
この記事をみれば、もうVBAでインデントで悩むことはないかなと思います。
さっそくインデントするときのルールを具体例つきで話していきましょう。
インデントをするルールと5つのタイミング
- Sub~End Sub
- If~End If
- For~Next
- Do While~Loop
- With~End With
基本ルールは、なにか処理が発生するときインデント。
まず、この5つのときにインデントを使いましょう。
インデントはどうやるのか説明したら、ちょっと具体例をだしていきますね。
インデントはどうやってするのか?
「Tabキー1回押し」または「スペース2回押し」どっちでもいいです。
ただどっちか決めたら、統一してインデントすること。
1行目はTabキー、2行目はスペースでっていうのは無しで。
インデントパターン1: Sub~End Sub
Sub example()
Dim example_number as Long
example_number = 10
End Sub
こんな感じですね。
1回インデントを始めれば、あとは自動。
Enterで次の行へいくとき、自動でインデント位置を合わせてくれます。
自動でインデントしないときは?
- エディタを開き、ツール→オプションを選択
- 編集タブに移動
- コード設定の「自動インデント」にチェック
インデントパターン2: If~End If
Sub example()
Dim example_number as Long
example_number = 10
If example_number = 10 Then
MsgBox "数字は" & example_number
Else
MsgBox "数字がちがいます。"
End If
End Sub
はい、If文をつけたらこんな感じです。
- If文始まり~Elseまでが1回目のインデント
- Elseで一回インデントをもどします
- Else~End Ifまでがもう1回インデント発生
インデントパターン3: For~Next
Sub example()
Dim example_number as Long
example_number = 10
Dim i As Long
For i = 1 To example_number
MsgBox "数字は" & i
Next i
End Sub
If文からFor文に変えてみた感じがこれですね。
- For文始まり~Nextまでが1回インデント
- For文の中でIf文がでてくればIf文でもインデント
インデントパターン4: Do While~Loop
Sub example()
Dim example_number as Long
example_number = 10
Dim i As Long
Do While i < example_number
i = i + 1
MsgBox "数字は" & i
Loop
End Sub
今度はFor文からDo While文に変えてこんな感じですね。
- Do While始まり~Loopで1回インデント
- If文などが入ればIf文でまた1回インデント
インデントパターン5: With~End With
Sub example()
Dim example_number As Long
example_number = 10
With Worksheets("Sheet1")
.Range("A1") = "数字は" & example_number
.Range("A2") = "数字は" & example_number + 1
End With
End Sub
はい、Withの場合はこんな感じ。
- With始まり~End Withで1回インデント
- If文やFor文が発生したら発生したときにもう1回インデント
まとめ: インデントして見やすいコードを書こう
- インデントの基本は処理が発生したとき
- 「Tabキー」または「スペースキー」でインデント
- インデントは統一すること
他にもFor each~NextやDo Until~Loopなどありますが、基本のインデントは同じですね。
まずは紹介した5つのインデントを覚えて見やすいコードにしていきましょう。
・もっとVBA学びたい人向け記事↓

