Access

ACCESSのVBAで複数行をまとめてコメントアウトする2つの方法

記事内に商品プロモーションを含む場合があります

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種類ご紹介しました。

  1. 複数行を選択してツールで一括コメントアウトする方法
  2. #if 0 thenを使ってコメントアウトする範囲の先頭と最後に命令を追記する方法

少なくとも1行ずつアポストロフィを付ける方法は効率が悪いのでやめましょう!

ABOUT ME
アズビーパートナーズ
プログラマー→社内SE→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。