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としての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。
今のスキルのままで大丈夫?

あなたのスキル。今のままで大丈夫ですか?

時代のニーズに合った開発スキルを身につけてあなたの価値を高めましょう。

\オンラインでも教室でも学べるおすすめのスクール/

TECH::CAMP(エンジニアスクール)

まずは基礎から・・・という方はProgateUdemyどっとインストールなどがおすすめ!

スキルアップについて詳しくはこちら