【Excel VBA入門】空白スペースの使い方|インデント

記述編

インデント」という言葉はご存知でしょうか?

「長いコードを書けるようになってきたけど、もっとわかりやすく書きたい」と思われている場合は、こちらを活用すると効果的かもしれません。

インデントとは

「インデント」とはプログラムの構造を見やすくするために、文章の先頭に空白文字(スペース)を挿入することです。

コードが長くても視覚的に見やすくするために活用します。

VBAでは、この「インデント」がなくてもプログラムの動作には関係しませんが、プログラムの修正をするときなど、コードを読みやすくするための便利な方法をご紹介します。

インデントの使い方

こちらの例をつかってご説明したいと思います。

2つのテストがあって、両方とも半分以上の点数(「20点満点テスト」は10点、「10点満点テスト」は5点)が合格ラインとします。

そこで、このようなコードを記述しました。

Sub sample1()
If Range("A2").Value >= 10 Then
If Range("B2").Value >= 5 Then
MsgBox ("合格です。")
Else
MsgBox ("不合格です。")
End If
Else
MsgBox ("不合格です。")
End If
End Sub

コードの動作としては期待したとおりの内容ですが、視覚的にすこし読みにくくはないでしょうか。

このようなコードにたいしてインデントを使った場合、このようになります。さきほどのコードと比較してみてください。

Sub sample2()
    If Range("A2").Value >= 10 Then
        If Range("B2").Value >= 5 Then
            MsgBox ("合格です。")
        Else
            MsgBox ("不合格です。")
        End If
    Else
        MsgBox ("不合格です。")
    End If
End Sub

コードの構造としては、「If ~ Then」のなかに「If ~ Then」が記述されています。このような構造を「ネスト(入れ子構造)」といいます。

3~7行目のコードがひとつのブロックになっています。このブロックがもうひとつの「If ~ Then」のなかで使われているといった状態です。

先ほどの例と見比べるとどちらが読みやすいでしょうか?

わたしは後者かと思いますが、自分が見やすいと感じる方を使っていただいて問題はありません。繰り返しになりますが、コードの動作自体にはとくに影響はでないためです。

まとめ

今回は「インデント」の使い方を簡単な例をつかってご紹介しました。

わたしの経験上、マクロは忘れたころに修正が必要な場面に直面します。そのときに、たとえ自分が書いたコードでも読みやすくするための工夫が必要になってきます。

今回ご紹介した方法をつかって、少しでも読みやすくなると感じた場合は活用をしてみてください。

タイトルとURLをコピーしました