AccessのVBAでコードをコメントアウトする方法は言わずと知れた文頭に「’」(アポストロフィー)を記入ですね。
ただ、複数行にわたってまとめてコメントアウトしたい場合、1行ずつ「’」(アポストロフィー)を追記するのは面倒です。
今回はVBAで複数行をまとめてコメントする方法を2種類ご紹介します。
ツールを使ってVBA複数行をまとめてコメントアウト
1つ目はコメントアウトしたい行を選択し、VBAの編集画面の編集メニューから「コメントブロック」する方法です。
コメントアウトしたい範囲を選択し、「コメントブロック」アイコンをクリックします。
ツールバーに編集メニューが表示されていない場合は、メニューより 「表示 > ツールバー > 編集」にチェックを入れてください。
まとめてコメントを解除したい場合は、同じく編集メニューから「非コメントブロック」をクリックします。
この機能でも十分なのですが、そもそもすでにコメントアウトしている部分があると、その上に更にコメントアウトになりちょっと見づらいという難点があります。
そこで、まとめて一気にコメントアウトする次の方法をご紹介します。
#if 0 thenを使ってコメントアウト
こちらはコメントアウトしたい範囲の先頭に「#if 0 then」、コメントアウトしたい範囲の終わりに「#end if」を記述する方法です。
以下、サンプルです。(5行目、24行目参照)
Public Function getFolderName(tmpFilePath As String) As String Dim intret As Integer #If 0 Then With Application.FileDialog(msoFileDialogFolderPicker) 'ダイアログのタイトルを設定 .Title = "フォルダ選択ダイアログ" .InitialFileName = tmpFilePath 'ダイアログを表示 intret = .Show If intret <> 0 Then 'フォルダが選択されたとき 'そのドライブ名+フォルダ名を返り値に設定 getFolderName = Trim(.SelectedItems.Item(1)) Else 'フォルダが選択されなければ長さゼロの文字列を返す getFolderName = "" End If End With #End If End Function
この場合、with~End Withのすべてのコードが実行対象外となります。
IFの条件を偽(0)としているめこのIFセクションはスルーされるわけです。
IFの条件を真(1)とすればIFセクションは実行されます。
広い範囲でコメントアウトする場合にはこの方法もおすすめです。
まとめ
VBAで複数行をまとめてコメントする方法を2種類ご紹介しました。
- 複数行を選択してツールで一括コメントアウトする方法
- #if 0 thenを使ってコメントアウトする範囲の先頭と最後に命令を追記する方法
少なくとも1行ずつアポストロフィを付ける方法は効率が悪いのでやめましょう!