ExcelVBA入門第7回 インデントとコメントアウト

ExcelVBA入門第7回 インデントとコメントアウト

プログラムは、書く人のクセが出るものですが、やっぱり英数字の羅列なので整理整頓して書かないとわけがわからなくなってしまいます。そんなコードを、できるだけわかりやすく書いておくために必要なのがインデントとコメントアウトです。


インデント

例えば、こんなソースコードがあります。

Sub Test()
Dim i As Integer
i = InputBox("数値を入力して下さい。")
If i <= 10 Then
MsgBox "変数iは10以内です。"
End If
End Sub

全部左詰めしてありますが、これだとどこからどこまでがまとまりになっているのか分かりにくいです。ひとつずつ、属性のある部分を字下げ(インデント)してあげます。

まずは、Sub~End Subの中に入っている部分(2~6行目)を全部選択して、[Tab]キーを押してみて下さい。

Sub Test()
  Dim i As Integer
  i = InputBox("数値を入力して下さい。")
  If i <= 10 Then
  MsgBox "変数iは10以内です。"
  End If
End Sub

どうでしょう? Sub~End Subに囲まれている部分が分かりやすくなったと思いませんか?

他にインデントできる場所はないでしょうか? If~End Ifも、ひとつのまとまりですよね。その中(5行目)の頭もインデントしてみましょう。

Sub Test()
  Dim i As Integer
  i = InputBox("数値を入力して下さい。")
  If i <= 10 Then
    MsgBox "変数iは10以内です。"
  End If
End Sub

だいぶ分かりやすくなりました。

行間をあけてみる

ここは絶対やらなければならないところではないのですが、個人的に、「まとまり」をきちんと分離させると、あとで見たときに分かりやすいと思っています。ただ、やりすぎるとコードが長くなりすぎてしまうので注意です。

Sub Test()
  Dim i As Integer

  i = InputBox("数値を入力して下さい。")

  If i <= 10 Then
    MsgBox "変数iは10以内です。"
  End If
End Sub

こんな感じにしてみました。宣言、入力、条件分岐と3に分けてあります。最初のものに比べると、このプログラムがどんな動きをするのか分かりやすくなっていませんか?

コメントアウト

コメントアウトは、プログラムの動きには反映されない、作成者側のメモみたいなものです。VBAの場合は頭に['](シングルクォーテーション)をつけると、その行に関してそれ以降は反映されないという仕組みになっています。

Sub Test() '「Test」というタイトル
  Dim i As Integer 'iを整数で宣言

  i = InputBox("数値を入力して下さい。") '入力してもらう

  If i <= 10 Then 'iが10以下だったら
    MsgBox "変数iは10以内です。" 'メッセージを出す
  End If 'If終わり
End Sub 'Sub終わり

こんな風にメモを残しておくと、非常に分かりやすくなります! 今回は例として全行に入れましたが、入れすぎはごちゃごちゃしてしまうので、適宜で良いと思います。

プログラミングをチームで行う場合、自分の作ったものを後任の方に託す場合などのためにコメントを残しておくことは重要ですが、実は自分の書いたものでも数ヶ月経つと「…?」ってなること、あるんですよねw そういう時のためにも、コメントは是非残しておきましょう。

普段見えないソースコードが密かに楽しい

整理整頓されたソースコードは、読みやすい上になんだか知的な感じまで醸し出します。まるでとても綺麗な字で書かれた手紙のようにも見え、きっとこれを書いた人、素敵な人なんだろうな…!なんて妄想まで広がります。(私は)

ちなみに、こちらの記事ではプログラマの苦悩というか感情が感じられるコメントを集めてあって面白かったです。

公開日:2012/02/08

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)

YouTubeでQ&Aコンテンツを企画しています

運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。