【解説つき】VBAでインデントするときのルール教えます【迷わない】
正直、インデントを覚えるだけでもまじ見やすいコードができるので...

この記事をみれば、もうVBAでインデントで悩むことはないかなと思います。

さっそくインデントするときのルールを具体例つきで話していきましょう。

インデントをするルールと5つのタイミング

  1. Sub~End Sub
  2. If~End If
  3. For~Next
  4. Do While~Loop
  5. 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で次の行へいくとき、自動でインデント位置を合わせてくれます

自動でインデントしないときは?

  1. エディタを開き、ツール→オプションを選択
  2. 編集タブに移動
  3. コード設定の「自動インデント」にチェック

インデントパターン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学びたい人向け記事↓