正直、インデントを覚えるだけでもまじ見やすいコードができるので...
この記事をみれば、もう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学びたい人向け記事↓