
■ プロシージャ
今回はプロシージャの規約を考えました。考えたと言っても、ここまで定義してきた規約の流れをプロシージャにも適用するだけなんですけどね。
そもそも、今回はロジック部分に強い縛りを入れる予定はないので、命名規約が中心になるのは仕方のないところではないでしょうか。
■ 命名規約
結局、こんな感じに落ち着きますかね。
1.先頭文字は英字の小文字。
2.半角英数字と全角文字のみ使用する。
3.記号は使用しない
4.意味の区切りで先頭文字を大文字、以降を小文字
もうちょっと縛れますが、この程度が無難だと思います。実際には変数の命名規約とほとんど同じですが、先頭文字を縛るのはやめました。
ルールは可能な限り少ないほうがよく、変数とプロシージャを読み間違えるほうが難しいという判断です。
■ 引数
引数の命名規約は前々回(ExcelVBAのコーディング規約を作ってみた No.5 変数の命名規約)で規定していますが、使い方は書いていませんでした。まぁ、使い方といっても、引数の受け取り方くらいですかね。
引数の受け取りには、値渡しと参照渡しがあり、VBAの場合はプログラミング上で明記することが可能です。引数の前にByRefとつければ参照渡し、ByValとつければ値渡しになり、省略した場合は参照渡しでしたかね。
今回の規約では「原則として参照渡しを使用」「渡し方(参照渡し、値渡し)を明記する」としました。
Private Sub test(ByRef pTe As Integer, ByVal pTime As String)
■ コメント
放っておくと、コメントを一切書かない奴が出るので、コメントの記述は規約で強制することにしました。書く内容はケースバイケースでしょうが、機能、引数、返り値、概要、この程度があれば十分でしょうね。
' 機能 : 配列の次元数を調べる関数
'
' 返り値 : Integer型 配列の次元数
'
' 引き数 : pTbl - 配列
'
' 機能説明 : 引数として指定された配列の次元数を返却します
'
' 備考 :
'
Function getTableDimension(ByRef pTbl) As Integer
■ 後書き
私がVBAで気に入っているのは、値渡しと参照渡しをプログラマーが自分で設定できるところです。私は10年近くjavaでプログラミングをしていますが、未だにこの辺りでハマることがあります。
この辺り、「javaは値渡しだけ・・・」「参照型が・・・」とか色々と長い話になりそうですが、私に言わせるとプログラマーにそこまで求める言語仕様に問題を感じます。重要なのは「呼び出し先で引数の値を変更できるのか?」であって、内部的な動作なんてどうでも良い気がしてなりません。
・・・・・・・長い話(愚痴)になりそうなので、ここまでにします。
何にせよ、値渡しと参照渡しが分かりやすいのはVBAの良いところだと思います。
前回:ExcelVBAのコーディング規約を作ってみた No.6 定数
次回:ExcelVBAのコーディング規約を作ってみた No.8 シート、セル
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end —
スポンサードリンク


