いくつかのサイトに載っていたベストプラクティス
【参考サイト】
http://www.spreadsheet1.com/vba-development-best-practices.html
https://www.automateexcel.com/vba/best-practices/
https://riptutorial.com/excel-vba/topic/1107/vba-best-practices
https://www.microsoft.com/en-us/microsoft-365/blog/2009/03/12/excel-vba-performance-coding-best-practices/
https://bettersolutions.com/vba/macros/best-practices.htm
https://masterofficevba.com/vba-coding-constructs/best-practices-for-excel-vba-code/
こうやってリストにしてみると、すごい多いですね😲
- Option Explicit を宣言する
- Sub, Function, 変数 は分かりやすい名前を付ける
- 変数名にはデータ型のプレフィックスを付ける
- 変数名にVBAの予約語(定数)を使わない
- ScreenUpdating, Calculation, Events, PageBreaks, DisplayStatusBar は停止する
- エラーハンドリングする
- オブジェクト変数はリリースする(ガベージコレクション, メモリリーク対策)
- Activate や Select はなるべく使わない
- コピペ処理は使わない
- シートを保護するときはできるだけ UserInterFaceOnly にする
- 多くのセルを処理するときは配列を使う
- 型宣言する(できるだけ Variant を使わない)
- ワークシート関数を活用する
- コードを実行する前にコンパイルする
- レイトバインディングを使う
- Cell, Range は完全修飾子を使う
- ActiveCell ActiveSheet はなるべく使わない
- インデントを入れる
- 空文字は "" ではなく vbNullString を使う
- For より For Each を優先して使う
- With ステートメントを使う
- コメントを入れる
- VBAの定数を使う
- 変数は使用している場所の近くで宣言する
- 関連する変数は同じ行で宣言する
- Gotoステートメントは使わない
- Call は使わない
- MagicNumber を避ける(Enumを使う)
- ByVal ByRef の違いに注意する
- Exit For や Exit Do を使う場合は注意を払う(乱用しない)
中には古い考えなんじゃないかなって思うのもあるけど
基本的には納得できるベストプラクティスですね。
動画のネタになるかな?😅
0 件のコメント:
コメントを投稿