いつもどこかでデスマーチ♪

不定期に、私の日常を書き込みしていきます。

Excel VBAの私のコーディングルール

2013年05月01日 10時04分46秒 | メモ
ExcelのVBAコーディングをやってますが、
チームでやると嫌になってきます。

特に今までVBAを主力としてやってきた人と一緒にしたくない…
理由は適当にコーディングしても動くからルール無用になる。
コードを見ていてイライラしてくる…
(Rage()なんて、Activeシートが変わってたらどうすんねん!とか…)
(きちんとされている方ごめんなさい。きちんとしてる人の絶対数が僕の周りでは少ないんです)

というわけで、私が勝手に作った勝手なルールをメモとして残す。
(メモなので見にくいっ!)


必ず守ること:
1.シートは「オブジェクト名」を付け、シートの参照は「オブジェクト名」で参照する
(ただし、動的に追加した時(一時シートなど)は除く。
オブジェクト名をつけるのが面倒だから)

2.ボタン等のイベントメソッド内でのみ下記の処理を行う
・Application.Calculation
・Application.EnableEvents
・Application.ScreenUpdating

3.ボタン等のイベントメソッドの処理は可能な限り少なくする
(できれば3行…No2.をまとめたメソッドと処理のメソッドを3つ)
(追加でエラー処理)
例:Call 描画停止処理(No2.の停止)
Call メイン処理
Call 描画開始処理(No2.の開始)

4.参照シートの省略はしない。(With の使用は可)
例:Range("A1") → シート名.Range("A1")
Cells("A1") → シート名.Cells("A1")

5.Function の場合、戻り値の型は必ず指定する

6.メソッド呼出には、必ず Call を付ける

7.Dim 宣言は、,区切りで行わない。(1行1宣言)


可能な限り守ること:
8.できる限り.Range()は使用しない。
範囲を選択する場合は、.Range(.Cells, .Cells) を使用する

9.グローバル変数は、出来る限り使わない

10.セルやシートのSelect(Active)は可能な限り使用しない。

命名規則:
11.const 変数は全部大文字(_区切り)

12.グローバル変数は、単語の先頭大文字

13.メソッド名は、単語の先頭大文字

14.ローカル変数は、先頭小文字(単語の先頭大文字)





簡単な説明です。

1.ネット上でよくワークシートをシート名称で検索して使う人がいます。
遅すぎ。かつ ユーザーにシート名称変更されたらどうすんねん。
シート名ぐらいユーザーの自由にさせてくれや…

2.どこでイベントを停止して、開始してるかが分からなくなる。(描画停止も一緒)
そのため、イベントが止まってるはずなのに発生したり、描画が止まってるはずなのに動いてたり…
そしてその理由を「Excelって変な動きするんだよねー…」いや、8割以上お前のコードだから。

3.VBAの人ってめっちゃ長い(100行以上)メソッドを書く人多いよね。
その上「Exit Sub」や「Exit Function」を多用するよね。
描画停止のままになったり、イベント発生しなくなったり…
そしてその理由を(ry…

4.アクティブシートに頼っちゃダメです。
きちんと「どのシートのどのセルか」を明確にすることで可読性が上がります。

5.なぜか知らんが、戻り値を設定しているのに、空文字が返ってくる事がありました。
戻り値の型を指定するとちゃんと文字列が返ってきました。
これは不思議でした。

6.私の趣味です。

7.「Dim aa, bb, cc as Integer」ってやると、cc しか型が付かないそうです。
aa と bb は Variant 型になるそうです。
型宣言の意味が無くなる + 可読性向上のためです。

8.「.Range("A1")」とかやると、行と列の定数化が出来なくなる。
そうすると、仕様変更に対応できない…
今もそのせいでバグが出まくり…もう嫌や。

9.プログラミングの常識ですよね。

10.Select や Active って、ユーザーに「ここだよ」って示す以外の用途には使う必要無いんですよね。
これ以外に使うと処理が遅くなりますよ。

11.以降は私の趣味です。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« log4cpp がビルドできません。 | トップ | Excel の 非道な行い »

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

メモ」カテゴリの最新記事