こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
突然ですが、VBE(VBAの編集画面)を開いて、「Module1」「Module2」……と、意味不明な名前の標準モジュールが並んで絶望したこと、ありませんか?
「あれ? 請求書作成のマクロ、どこに書いたっけ?」と探す時間、もったいないですよね。
実は、モジュールの整理整頓は、プログラミングの上達においてコードを書くこと以上に重要です。
今日は、あなたのVBEを「汚部屋」から「モデルルーム」に変える方法をお伝えします。
なぜ「名前」にこだわるのか?
理由は単純。「3秒の手間で、未来の30分を節約するため」です。
標準の「Module1」という名前は、いわば「書類」と書かれただけの段ボール箱です。中身を開けないと分かりません。これでは、トラブルが起きた時に原因を探すだけで日が暮れてしまいます。
Microsoftの公式ドキュメントでも、モジュール名などの要素名には「255文字以内で、わかりやすい名前をつけること」が推奨されています 1。
今日から使えるベストプラクティス
これだけ守ればOK!という鉄則を紹介します。
- 接頭辞(プレフィックス)をつける
モジュール名の頭に「何の種類のファイルか」を示す記号をつけます。- 標準モジュール:mdl_ (または m_)
- クラスモジュール:cls_ (または c_)
- 例:mdl_InvoiceCalc(請求書計算用モジュール)
- 1モジュール 1テーマ
「なんでもボックス」を作らず、機能ごとにモジュールを分けましょう。 - 使わないモジュールは即削除
「いつか使うかも」というコードは、テキストファイルに退避して、VBAプロジェクトからは削除しましょう。容量も軽くなり、動作も安定します。
【コピペOK】一瞬でモジュール整理する魔法のコード
とはいえ、手作業での追加・削除は面倒ですよね。
そこで、「指定した名前で標準モジュールを新規作成する」&「指定したモジュールを削除する」便利なコードを紹介します。
' ==============================================
' 機能:指定した名前で標準モジュールを作成するツール
' ==============================================
Sub CreateNamedModule()
' 新しいモジュール名をここで指定
Dim newModuleName As String
newModuleName = "mdl_SalesData"
' すでに同名がないかチェック(簡易版)
On Error Resume Next
Dim temp As Object
Set temp = ThisWorkbook.VBProject.VBComponents(newModuleName)
If Not temp Is Nothing Then
MsgBox "その名前のモジュールは既に存在します!", vbExclamation
Exit Sub
End If
On Error GoTo 0
' モジュールを追加して名前を変更
' vbext_ct_StdModule の値は 1 です
Dim vbc As Object
Set vbc = ThisWorkbook.VBProject.VBComponents.Add(1)
vbc.Name = newModuleName
MsgBox "モジュール [" & newModuleName & "] を作成しました!", vbInformation
End Sub
' ==============================================
' 機能:指定した名前で標準モジュールを削除するツール
' ==============================================
Sub DeleteTargetModule()
' 削除したいモジュール名をここで指定
Dim targetName As String
targetName = "Module1" ' ←消したい名前に書き換えてください
On Error Resume Next
Dim vbc As Object
Set vbc = ThisWorkbook.VBProject.VBComponents(targetName)
If vbc Is Nothing Then
MsgBox "そのモジュールは見つかりませんでした。", vbExclamation
Exit Sub
End If
' 削除実行
ThisWorkbook.VBProject.VBComponents.Remove vbc
MsgBox "モジュール [" & targetName & "] を削除しました。", vbInformation
On Error GoTo 0
End Sub
最後に
最初は「面倒だな」と思うかもしれません。でも、きれいな部屋で仕事をすると効率が上がるように、きれいなコード環境はあなたのミスを劇的に減らしてくれます!
出典:
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、ぜひ参考にしてみてください。
リンク
リンク


コメント