社内SEの徒然なる日記

ExcelVBAのコーディング規約を作ってみた No.8 シート、セル

■ シート

随分と続いた「ExcelVBAのコーディング規約を作ってみた」シリーズですが、そろそろ終わりですね。今回は、シートやセルの規約です。

ワークシートの命名規約は、変数の命名規約とほぼ同じ内容。ただし、先頭文字をSとするって感じでどうですかね。
1.先頭文字は、S(半角大文字)固定とする。
2.英数字のみ使用可能とする。
3.意味の区切りで先頭文字を大文字とし、以降を小文字とする。


なお、ここで言っている名称は、ワークシートの名前ではなく、ワークシートのコード名のほうです。さらに、シート参照ではコード名を使用するように限定します。

こういうことですかね。
正:Scsv.Cells(1,1).value = 0
誤:Sheets("CSV作成シート").Cells(1,1).value = 0


シート名でプログラムを書くと、使用者にそれを変更されて動かなくなることが良くあります。そこで、コード名でプログラミングするように規定するのです。

まぁ、それはそれで別の問題が起きそうですが、壊された時の原因調査が楽になるのは間違いないと思います。

■ セル

セルについては、これまでに何回か書いた通りです。つまり、セルへの参照は定数を使用するってことですね。

Public Const C_ROW As Integer = 4
Public Const C_COL As Integer = 7

Private Sub test()
ActiveSheet.Cells(C_ROW, C_COL) = "123456"
End Sub


理由は、これまで書いた通り。参照位置が変わった時の保守性ですね。

■ 後書き

規約としては、今回で終了しても良かったのですが、あと1回だけ続けます。VBAを使うにあたって、止めたほうが良い(と思う)記述方法を制限します。

前回:ExcelVBAのコーディング規約を作ってみた No.7 プロシージャ
次回:ExcelVBAのコーディング規約を作ってみた No.9 処理制限

投稿記事の一覧:http://harikofu.web.fc2.com/

--- blog end — スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する