社内SEの徒然なる日記

ExcelVBAのコーディング規約を作ってみた №1 始まり

■ 規約

基幹システムのメンテナンス(開発)を自社で行っている関係上、規約については一通りのモノが揃ってはいます。

JavaやCOBOLと言った高級言語のコーディング規約の他に、シェルやSQLのコーディング規約、各種の命名規約、画面設計規約、帳票設計規約などと言った一通りの規約群ですね。開発標準とでも言えばいいでしょうか?

...まぁ、ほとんどは基幹システムの開発委託先で使っていた資料をそのまま使わせて貰ってるんですけどね。

なんにせよ、色々と規約はあるのですが、Excelについては規約が存在していません。使っていないのなら良いのですが、基幹システムと連携するような機能を持ったExcelがゴロゴロ転がっているのに、規約が無いのです。

■ Excelでの開発

実を言えば、無ければ無いで特に困ってはいませんでした。ExcelVBAを活用した開発案件自体は結構あるのですが、難易度の高いものや、基幹システムと連携するようなものは私が一人でやっているので、規約なんてものが無くても良かったのです。要するに、後で追えるように綺麗に作ればいいわけですからね。

ところが、Excelを使った開発案件が発生して、それを私以外の人が担当する事になりました。んで、嫌な予感がしたので、その人が作ったExcelVBAを見ると・・・・・・

ちょっと愚痴を書きます。



え?何で処理の制御にパブリック変数使ってるの?関数(Functionプロシージャ)なのに戻り値が無いってどういうこと?変数って何なのか理解してる?ループカウンタにVariant型使うの?セルの位置情報ってコードに直接書くの?定数とか共通の取得処理とか使わないの?後で変更した時どうするの?Auto_open使うのが悪いとは言わないけど、Workbookのopen使った方が後で分かりやすく無い?訳の分からない場所でendで処理自体を打ち切らないで!エラートラップしようよ!日本語だけでプロシージャ作らないでよ、そして呼ぶ時にcallを省略しないで欲しいなぁ。コメントは書こうよ。インデントがバラバラなので読みづらい。自動生成(コピペ)したソースをそのまま使わないで!定数と変数って何が違うのとか聞かないで!シートを参照するのにシート名使うのがダメとは言わないけど、コード名を使った方が変更に強いよ?



まぁ、私自身の拘りのようなモノも含んでいますが、要するに何を書いているのか分からん!

■ 規約を作ろう!

マズい、マズいですよ。このまま放置したら誰も追えないゴミが出来ちゃいますよ。どうしよう、まともに言っても聞かないだろうし・・・

そうだ、ルール(規約)を作ってアホな事が出来ないように縛ってやろう!まずは、開発標準の提案って感じで緩やかに始めて、ソースコードレビューとかしながら少しずつ読める形に矯正していけないかな?

私自身、プログラマーとしての腕はたいしたものじゃないので、ちょっと荷が重いのですが、後に続く人達のためにも何とか良い形に持って行けないかと思ってます。

■ 後書き

ところで「**で書かれたソースは追えない」(**にはVBとかCとか言語が入る)って言葉を聞いた事がありますか?

主に、プログラマーじゃない営業や管理職あたりから聞こえてくるのですが、私はこう返しています。

「日本語で同じ意図の文章を違う人が書いたとします。読みやすいか、読みづらいかは書く人の文章力の問題じゃないでしょうか?言語が悪いのではないと思いますが。」

一理はあると...思うんだけどなぁ。

次回:ExcelVBAのコーディング規約を作ってみた No.2 規約の基本構想

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

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

PageTop

コメント


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