fc2ブログ

(元)社内SEの徒然なる日記

ExcelVBAのコーディング規約を作ってみた No.6 定数

■ 定数

通常の言語の場合、定数の役割は「なんらかの意味を持つ値を一箇所で管理する」が大きなものだと思います。プログラム上でハードコーディングするのではなく、定数として使用することでプログラミングのミスを防ぎ、値が変更された場合の影響範囲を少なくする効果などが見込めます。

さて、ExcelVBAにおいても用途は同じなのですが、Excelという表を操ることになるため、セルの参照位置を定数で保持するという役割が主になりそうです。

■ 規約

定数と変数、迂闊に使うと勘違いしそうなので、見た瞬間に定数だと判断できるようにします。つまり、定数は全て大文字固定で意味の区切りをアンダーバーとします。

1.先頭文字はCとする。
2._(アンダーバー)を、名称の意味の区切りとして使用すること。
3.セルの参照は定数を使用する


■ サンプル

実際の定数の宣言はこんなところでしょうか。
Option Explicit

'----------------------------------------
' 定数
'
' 作成日 : 2015.05.15
' 作成者 : 山本 権兵衛
'----------------------------------------


'出力ファイルパス
Public Const C_OUT_PATH As String = “B5”

'-------------------------
'「更新用データ」シート
'-------------------------


'列情報
Public Const C_SECTION_START_C As Integer = 4 '開始データ列
Public Const C_SECTION_END_C As Integer = 10 '最終データ列

'行情報
Public Const C_TITLE_ROW As Integer = 7 'タイトル行
Public Const C_DATA_ROW As Integer = 8 '開始データ行


■ 後書き

私がExcelVBAで何かを作ると、シート上の特定のセルにパラメータを入力する(させる)ことが多いのですが、作り始める時は適当な位置に入れておいて、ある程度動くようになってからレイアウトの調整をするので、場所(セル)が移動することが良くあります。

そこで、位置を定数として持たせて、セルを参照するときには必ず定数を使用するようにしておけば、定数の値だけを直すだけで修正完了というわけです。

次回は、プロシージャです。

前回:ExcelVBAのコーディング規約を作ってみた No.5 変数の命名規約
次回:ExcelVBAのコーディング規約を作ってみた No.7 プロシージャ

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

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

PageTop

コメント


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