「インデント」という言葉はご存知でしょうか?
「長いコードを書けるようになってきたけど、もっとわかりやすく書きたい」と思われている場合は、こちらを活用すると効果的かもしれません。
インデントとは
「インデント」とはプログラムの構造を見やすくするために、文章の先頭に空白文字(スペース)を挿入することです。
コードが長くても視覚的に見やすくするために活用します。
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」のなかで使われているといった状態です。
先ほどの例と見比べるとどちらが読みやすいでしょうか?
わたしは後者かと思いますが、自分が見やすいと感じる方を使っていただいて問題はありません。繰り返しになりますが、コードの動作自体にはとくに影響はでないためです。
まとめ
今回は「インデント」の使い方を簡単な例をつかってご紹介しました。
わたしの経験上、マクロは忘れたころに修正が必要な場面に直面します。そのときに、たとえ自分が書いたコードでも読みやすくするための工夫が必要になってきます。
今回ご紹介した方法をつかって、少しでも読みやすくなると感じた場合は活用をしてみてください。