コメントアウト
今回の目標
説明
自分で作成したプログラムでも3ヶ月も経てば、作成した意図が分からないプログラムになります。そうした状況を無くすために、特定の条件下でメモを残すことが許されています。
余談ですが、シングルコーテーションを入力してキャレットの行を移動させるとコメントアウトさせた行の文字が緑色に変化します。
先ほどのプログラムを修正すると次の通りになります。
コメントアウトする
普通にメモを残そうとするとエラーが発生していまいます。まずは次のプログラムを実行してください。(エラーが発生します)
Sub Sample_Comment1()
セルA1に値「1」を入力する
Cells(1, 1) = 1
End Sub
次の図のエラーが発生すると思います。
エラーが発生しないように、コメントアウトしましょう。
方法は簡単で「コメントの先頭にシングルコーテーション「'」を入力してからメモを入力する」のです。
'セルA1に値「1」を入力する
このコメントアウトとはこの行のシングルコーテーション以降のプログラムは実行させないという意味を持ちます。そのため、エラーが発生しなかったのです。余談ですが、シングルコーテーションを入力してキャレットの行を移動させるとコメントアウトさせた行の文字が緑色に変化します。
先ほどのプログラムを修正すると次の通りになります。
Sub Sample_Comment1()
'セルA1に値「1」を入力する
Cells(1, 1) = 1
End Sub
このコメントアウトはメモだけでなく、プログラムを実行させないこともできます。次のプログラムはD1に値「1」を設定していますが、C1への代入はコメントアウト化されているため、実行されません。
Sub Sample_Comment2_1()
'セルC1に値「1」を入力する
'Cells(1, 3) = 1
'セルD1に値「1」を入力する
Range("D1") = 1
End Sub
次のように命令の後にコメントを追加することもできます
Sub Sample_Comment2_2()
Range("D1") = 1 'セルD1に値「1」を入力する
End Sub
少し先の話になりますが、どこが原因でエラーが発生しているかわからないときに、プログラムをコメントアウトして、このプログラムを実行させないとエラーが出ないからここにエラーの原因がある、といった使い方もできます。合わせて覚えておきましょう。
コメントアウトを解除する
コメントアウトされている状態からプログラムが実行されるようにします。先頭のシングルコーテーションを削除してください。先の"Sample_Comment2"を変更してみます。
Sub Sample_Comment3()
'セルC1に値「1」を入力する
Cells(1, 3) = 1
'セルD1に値「1」を入力する
Range("D1") = 1
End Sub
一括してコメントアウトする
前提
大量にコメントアウトする場合の方法として、「編集」ウィンドウが表示されている必要があります。下の画像の赤枠内を右クリックしてください。「編集」にチェックが入っていないなら、「編集」をクリックしてください。
すると、次のウィンドウが表示されます。
表示されたら、プログラムに戻りコメントアウトしたい命令をドラッグで選択しましょう。
下記サンプルをVBEへコピペしてください。
Sub Sample_Comment4()
Cells(1, 1) = 1
Cells(1, 2) = 1
Cells(1, 3) = 1
Cells(1, 4) = 1
Cells(1, 5) = 1
Cells(1, 6) = 1
End Sub
上記の例は、A1~F1に値「1」を入力するプログラムです。これのB1~F1の命令文( Cells(1, 2) = 1 ~ Cells(1, 6) = 1)をコメントアウトしてみます。
一括コメントアウトする
- 対象をドラッグして選択します。
- 編集ウィンドウから下図の赤枠のマークをクリックします。
- 選択された行の先頭にシングルコーテーションが追加されています。
一括してコメントアウトを解除する
- コメントアウトを解除する行を選択します。
- 編集ウィンドウの下図の赤枠をクリックします。
- 先頭のシングルコーテーションがなくなり、コメントアウトが解除されています。
余談ですが、「1」のコメントアウトを解除する行を選択するとき、コメントアウトされていないプログラムを選択しても何も起こりません。
コラム
’(シングルコーテーション)以外のコメントアウトの方法について、説明します。「Rem 」と行の先頭に入力するとコメントアウトできます。しかし、一文字のシングルコーテーションでコメントアウトすることがメジャーですので、知識として知っておくレベルです。
確認テスト
次の問いに答えなさい。
- 2行目をコメントアウトしなさい。
- 2行目の[A6に・・・]以降をコメントアウトしなさい。
- 2行目のコメントアウトを解除しなさい。
Sub TestComment1()
A5に"加藤"を入力する
Cells(5, 1) = "加藤"
End Sub
Sub TestComment2()
Cells(6, 1) = "加藤" A6に"加藤"を入力する
End Sub
Sub TestComment3()
'Cells(1, 1) = "加藤"
End Sub