VBAのモジュール名を変更する方法と、
おすすめのモジュール命名規則を紹介します。
モジュール名の設定方法
マクロを書くために標準モジュールを挿入すると、
このように「Module1」などの名前でモジュールが作成されます。
この「Module1」という名前は以下の手順で変更することができます。
① 対象のモジュールを選択する
② 「プロパティウィンドウ」の(オブジェクト名)欄を入力する
これで「Module1」という名前を好きな名前に変更できます。
入力するプロパティウィンドウの位置は設定によりますが、
初期位置ではプロジェクトエクスプローラーの下にありますので探してみてください。
もし見当たらない場合は、
- 対象モジュールを選択した状態で[F4:プロパティウィンドウへ移動]
- [表示タブ] ⇒ [プロパティウィンドウ] を選択
どちらかの方法で表示させることができます。
モジュール名の命名規則
モジュール名は「半角31文字(全角15.5文字)」が上限です。
この上限に納まる範囲で分かりやすい名前を付けましょう。
モジュールの名前を付ける上で重要なのが、
「モジュールの並び替えはできない」という点です。
モジュールは文字コード順(いわゆる索引順)に勝手に並び変わるだけなので、
綺麗な並びにするにはモジュール名を調整する必要があります。
そこでおすすめなのが「英字1~2文字+数字+日本語」にするルールです。
百聞は一見に如かず、実際に設定したものがこちら
こんな風に英字+数字を先頭に付けておけば、
モジュールを処理順やボタン押下順に並べることができます。
実行順が決まっているマクロなどでは、
この整理をやっておくとかなりコードが探しやすくなるので是非採用してみて下さい。
最初は「Md1,Md2」「M01,M02」を付けるだけでも十分効果があります。
さらにマクロが複雑になってきたら、画像のような英字で分類も試してみて下さい。
頭文字の英字には好きな文字を使っていただければと思いますが、
一応私のルールを紹介しておくと
頭文字 | 意味 | 搭載コード |
---|---|---|
Df | Define | 定義モジュール(定数、Enum、マクロ固有関数など) |
Op | Operation | 実行マクロ(ボタン設置、イベントなど) |
Pr | Process | 各工程ごとのメインコード |
Ut | Utility | 汎用関数(自作ライブラリ) |
こんな風に命名しています。
気に入ったら採用してみてください。
おまけ:シートのオブジェクト名も同様に変更可
今回プロパティウィンドウでオブジェクト名を設定しましたが、
実はモジュールだけでなく、ワークシートにも名前を付けることができます。
何もしないと「Sheet1」とかになってる場所ですが、
これをモジュール名のように「WS + 実際のシート名」と名付けてみましょう。
この設定をしておくことで、
シート指定を以下のように書くことができるようになります。
Worksheets("購入データ").Cells(R, 2) ' ↓ シートのオブジェクト名に書き換え WS購入データ.Cells(R, 2)
コードが簡潔でスッキリしますね!
しかも「WS」を必ず頭につけるルールで全シートを命名したことで、
wsからCtrl+Spaceの「コードの入力補完」機能を起動すれば、
シートをこの選択肢から選んで入力することができます。
何と素晴らしい!
このリストと同じ選択肢から選べるわけですから、
普通に書くより書きやすく、しかも取り違えも起きにくい入力方法です。
しかも日本語変数は「読みやすいけど入力が面倒」というのが弱点なのですが、
この方法を使えば日本語入力をOFFのままシートの入力ができます。
この時点で既にWorksheets("○○")より優れているのが分かりますが、
さらにWorksheets("○○")と違って
このWorksheetオブジェクトのメンバー選択肢も表示されるというおまけつき。
他ブックには使えないという弱点はありますが、自ブックのシートを指定する上では、
取り違えも起きづらく、読みやすく、書きやすい最強のシート指定方法です。
まだ使っていなかった方は是非とも採用してみてください。