
■ 制限
前回の最後で書いた通り、規約としては前回までで終わっています。また、最初に書いた通り、あまり厳しい規約を作るつもりもないのですが、許してしまうと保守性が大幅に下がるだろう書き方については制限したいところです。
今回、そのあたりのことを書いて最終回としたいと思います。
■ プロシージャの使用方法
プロシージャを呼び出し時、単純にプロシージャ名を書くだけでもエラーにはなりません。なりませんが、CALLステートメントを記述するようにします。
CALL getDateTime()
書き方にもよるのでしょうが、突然プロシージャ名だけがポツンと現れると混乱すると思います。誤解を招かないためにも、きちんと書きましょうってことです。もちろん、戻り値がある場合はCALLは無くてよいですけどね。
・・・これ、呼び出す時のコメントできちんと書いておけば良いとも思いますけどね。
■ End
Endステートメントは、実行した時点でVBAを強制終了する強力な処理です。
問題なのは、Exitステートメントのように呼び出し元に戻るのでは無く「処理自体が終了する」という点です。処理の開始点からプロシージャを実行、そこから関数を呼び出し、さらに関数を呼び出し、この時点でEndステートメント実行とかされると最悪です。
良くあるのが、意図しない状況になった時にEndステートメントを発行するというものですが、そうでは無く、きちんとエラートラップするのが正しい方法だと思います。
もっとも、オブジェクト系のエラーのようにEndステートメントが必要な場合もあるでしょうから、原則論でしかないんですけどね。
■ 後書き
ExcelVBAのコーディング規約、どうだったでしょうか?
時々、情報システム部ではない部門でVBAで作ったシステムが保守でき無くて困っているという話を聞きます。彼らの本職はシステムではないので、どうしても奇妙な作り方になってしまいますが、それに対して愚痴を言ってしまうと「お前たちが何もしてくれないからだ」と反論が返ってきそうです。
現場の動きを止めるのが難しいなら、良い方向に誘導するのも一つの手ではないでしょうか。忙しくて現場対応ができなくても、コーディング規約なんかを整備して開発時の参考にして欲しいと依頼することは可能だと思います。
世界の汚いソースが、少しでも綺麗になることを祈ります。
記事の一覧
・ExcelVBAのコーディング規約を作ってみた No.1 始まり
・ExcelVBAのコーディング規約を作ってみた No.2 規約の基本構想
・ExcelVBAのコーディング規約を作ってみた No.3 規約作成
・ExcelVBAのコーディング規約を作ってみた No.4 変数
・ExcelVBAのコーディング規約を作ってみた No.5 変数の命名規約
・ExcelVBAのコーディング規約を作ってみた No.6 定数
・ExcelVBAのコーディング規約を作ってみた No.7 プロシージャ
・ExcelVBAのコーディング規約を作ってみた No.8 シート、セル
・ExcelVBAのコーディング規約を作ってみた No.9 処理制限
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end —
スポンサードリンク


