対象読者
VBAなんてチョロいって人
VBAがショボいって思ってる人
VBAイイヤツ、ワルイノオマエ
Excel VBAはofficeの入っているPCなら誰でも利用可能である。
したがって、非プログラマや非VBAerもカジュアルに利用できる。
環境構築不要という参入障壁の低さはメリットでもあるが、
糞コード氾濫の一因にもなる。
(どこの現場もオレオレツールばっかだよね)
基本的に、VBAにはVBAの作法がある。※1
そこに、JavaやらPHPやらC系のコーディングルールを下手に混ぜ込むのはご法度だと思う。
VBAをやるならVBAに従おう。
(といいつつ、僕もコーディング規約に沿っているか不安な部分もある。Javaライクに書いてたら誰か殴って欲しい。)
ということで、基本的な規約ぐらい最低限は。
命名規約
参考元
Developer Network MSDN 名前に関するガイドライン
http://msdn.microsoft.com/ja-jp/library/ms229002(v=vs.100).aspx
Javaとかの人向け(おまけ)
->仮引数の方にParamArrayを使えば、可変長引数ぽくなる。
例) Dim value As String
value = IIf(i > 10,"10より大きい","10以下")
※ただ、厳密にはJavaの三項演算とは異なり、TRUEとFALSEの場合両方評価してしまうよう。
つまり、ショートサーキット演算ではない(AND演算子に関しても同様らしい)
2014/09/15追記
あまりネットの情報は鵜呑みにするな
なんか、すごいブーメランな気もするけど。
VBAの学習サイトとか、情報の塊としては素晴らしいのだけれど
実際のソースとしてはモヤっとしたものがある。
そこらへんは見極めが必要。
いつまで経っても古いサイトの古い情報が
検索エンジンの結果の1番トップにあるのは
なんだか違和感がある。(しょうがないけど)
Tipsにしても、そこらへんの人が好き放題書いてる印象がある。
研磨されないので、VBA界隈の人はもっと殴りあいするべきである。
多分、参考書を読んだ方が良いのだろう(自分含め)
まとめ
VBA扱いひどいよねって話でした。
あと、ちゃんとルールを知ろう、ルールを広めようっていう試みでした。
VBAが混沌とした残念な広まり方をしている原因は以下のようなものが考えられる。
そこらへんのリファレンスの整備とかMicrosoftがやってくれればもうちょっとちゃんとした情報が広まったんじゃなかろうか。
・・・って書いてたらコメントをいただきました。公式仕様あるみたいです。英語ドキュメントですが。
[MS-VBAL]: VBA Language Specification
2014/09/15追記
結論としては
以上。
※1 厳密にはVBAの規約ってあまりMicrosoftとして公表してないっぽい。
VBの規約に準じる。ただ、VBの命名ルールはなぜか.NetFramework4の規約を参照している。。
Microsoftちゃんとしろ。
※2 小文字始まり。単語と単語のつなぎ目は大文字
例)
hogeListItem
※3 大文字始まり。単語と単語のつなぎ目は大文字
例)
HogeListItem
2 件のコメント:
>僕がどんだけ探してもMicrosoftのVBAに関してのドキュメント見つかんないんだもん
仕様書ならありますよ。
http://msdn.microsoft.com/en-us/library/dd361851.aspx
リンク先のpdfファイル
>kumattiさん
おぉ、ありがとうございます!
日本語ドキュメントはなさそうですねぇ(英語読めよって話なんですけどね)
ブログの内容修正させていただきます。
コメントを投稿