見やすく書こう。

マクロの行数が増えてくると、どこからどこまでが関係しているのか、
パッツと見てもわからなくなってくるときがあります。
あとで、改良したり、バグを取ったりすることを考えると、メンテナンスしやすいように
見やすく書いておくことが重要です。

1.Tabを使う。

Sub test()

Dim R As Long
Dim 合計 As Integer

For R = 1 To 10
合計 = 合計 + Cells(R, 1)
Next R

MsgBox 合計

End Sub
 
これは、タブを使ってない例です。

どこからどこまでがひとつのまとまりなのか、
わかりにくですね。 
Sub test()

  Dim R As Long
  Dim 合計 As Integer

  For R = 1 To 10
    合計 = 合計 + Cells(R, 1) ←A
  Next R

  MsgBox 合計

End Sub
 
これは、タブを使った例です。 


For 〜 Next文の中なので、
  タブを使ってグループとしてまとめています。



また、全体としてタブを使って右にずらしてありますが、
モジュールの中にいくつものプロシージャを書くとき、
この方が区切りがわかりやすくなります。

2.コメントを付ける。

プロシージャの内容は、作っているその時なら、その構造や変数の意味を覚えていますが、
時間が空くと、自分がどのようにしてプロシージャを組み立てていったのか忘れてしまいます。
忘れてしまうと、その構造をまた理解するのに、大変時間がかかってしまいます。
そこで、後々、改良することや誰かに手渡すこともあると考え、要所要所にコメントを入れることが大切です。

コメントは、半角で「'」と入力してから書きます。
そうすると、それから後は、プロシージャ上ではコメントとして無視されます。

Sub test()

  Dim R As Long '行の位置(長整数型で) ←@
  Dim 合計 As Integer '合計 ←A

  '---- データの有無チェック---- ←B
  If 最初 = 0 Then
    MsgBox "データがありません。"
    Exit Sub
  End If

  '---- 合計を計算する ---- ←C
  For R = 最初 To 最後
    合計 = 合計 + Cells(R, 1)
  Next R

  MsgBox 合計

End Sub
  
@ 行の位置を代入するためと、メモしています。
   また、最終行が32767を越えるため、整数型では
  オーバーフローしてしまうため、長整数型にしたことも
  メモしています。

A 合計に使うことを、メモしています。

B この先、データのチェックをする部分であることを
  メモしています。

C この先、合計を計算する部分であることを
  メモしています。

3.日本語を使う。

これは、ひょっとしたら賛否両論があるかもしれません。
日本語を使うことで、日本語に対応していない環境では、動かないことが出てくるかもしれません。(確認はしてませんが)
しかし、プロシージャを組んでいく上で、ひと目で意味がわかることのメリットは莫大です。
効率よくプロシージャを組むために、変数名やプロシージャ名、ユーザー定義関数名などに、日本語を使うことをお勧めします。
日本語のままでは不具合が発生する場合は、日本語表記をアルファベットに置換してください。

Sub test()

  Dim R As Long '行の位置(長整数型で) ←@
  Dim goukei As Integer '合計 ←A

  '---- データの有無チェック---- ←B
  If saisyo = 0 Then
    MsgBox "データがありません。"
    Exit Sub
  End If

  '---- 合計を計算する ---- ←C
  For R = saisyo To saigo
    goukei = goukei + Cells(R, 1)
  Next R

  MsgBox goukei

End Sub
   
上で使ったプロシージャを、コメント以外ローマ字に直してみました。
非常にわかりにくいですね。



漢字混じりの日本語になっていると、一瞬で意味が分かるので、
コメントの量を減らすこともできます。


また、引数をもっているサブプロシージャやユーザー定義関数では、
プロシージャ作成時に引数の名前やタイプを表示してくれるので、
その引数が何を意味しているのかが、すぐにわかります。

下画像の、Sub test6() のところの、『Call 色付け( 』を見て下さい。
ここまで入力してきたら、変数名が表されました。

4.改行をする。

プロシージャ内のステートメントの1行が長すぎると、とても見にくくなります。
そういうときには、そのステートメントの中で改行するといいですね。
改行するにあたってはルールがあるので、それを忘れないようにしましょう。

Sub test25()

MsgBox "こんにちは、" & vbCr _ ←@
& "元気ですか?"

End Sub
@ ここのところで、改行をしています。
  改行にはルールがあって、
  半角で、空白+_(アンダーバー) を記入してから改行することです。

  こうすると、横に長くならずにプロシージャを書くことができます。