第2回 VBA 補足事項 〜ステップイン、コメントアウト、エディタ設定〜

プログラミング

第2回で説明していない「ステップイン」「コメントアウト」「エディタ設定」 について説明します。

※エディタ設定については、あくまで僕の設定を公開するだけですので、設定しなくても構いません。

ステップインについて

VBEにはプログラムを1行ずつ実施する(ステップイン)と言う機能が備わっています。

どういった時に使用するのか?

  • 1 プログラムが正常に動作しなかったとき(エラー探し)
  • 2 どのように処理をしているのか確認するとき

1の場合は、エラー箇所を探すことに重きを置いた使用方法です。

エラーを探すときに1文ずつ行うことでエラーを見つけることができます。

2の場合は、他の人が作成したプログラムを1行ずつ実行しどのような処理をしているのかも確認することができます。

VBAを始めた頃の僕はステップインをひたすら行い、他の人が作成したプログラムの動作を1つずつ自分の言葉でコメントアウトで残し理解していきました。

ステップインのやり方

2通り紹介します。

  • 1 ステップインを行いたいプロシージャをクリックしてショートカットキー[F8]を押す。
  • 2 [ツールバー]にある[ステップイン]をクリックする

2番目の[ツールバー]に[ステップイン]が無い場合は[デバックバー]を表示させる必要があります。

ツールバーにデバックバーを表示する方法

[メニューバー]にある[表示]の[ツールバー]を左に進み[デバック]にチェックマークを入れてください。

チェックを入れると[デバック]バーが表示されます。

[デバック]バーの青括弧部分をクリックすることでステップインを行います。

ステップインの動作を確認してみる

第3回IF文で学習するEX_IFを例にステップインを行なった場合の動作を紹介します。

例文はこちらになります。

Sub Ex_IF()
    Dim rc As VbMsgBoxResult
    rc = MsgBox("あなたはりんごが好きですか?", vbYesNo + vbQuestion)
    If rc = vbYes Then
        MsgBox "好きを選択しました!"
    Else
        MsgBox "嫌いを選択しました!"
    End If
End Sub

※僕の環境だとVBEエディタの設定変更を行なっているため添付画像の文字と色が違う場合がありますが問題ないので気にせず進んでください。もし気になる方は、この項の後にある「エディタ設定について」を先に行なってくだい。

それでは、ステップインのやり方で学んだどちらかの方法でステップインを体験してみましょう。

ステップインを1回実行してください。

もう1回ステップインを実行します。

更にもう1回ステップインを実行します。

するとポップアップで「あなたはりんごが好きですか?」と表示されます。

今回は[Yes]を選択します。するとこの画面に切り替わります。

ここで更にステップインを1回実行します。

するとポップアップで「好きを選択しました!」と表示されます。

[OK]をクリックします。するとこの画面になります。

ここで更にステップインを1回実行します。

分岐処理は終わったのでEnd Ifに移行します。

ここで更にステップインを1回実行します。

End Subに移行し処理を終了に移行します。

最後に1回ステップインを実行するとステップインが終了します。

ステップインはこのような動作確認を行えます。

今度はポップアップで「あなたはりんごが好きですか?」と表示される所で[No]をクリックした場合も行ってみてください。

先ほど一緒に行った場合では処理されなかったElseの処理ステップインで確認することができます。

以上の動作が、ステップインです。

コメントアウトについて

VBAにはコメントアウトと言う機能があります。

プログラミング言語にはコメントアウトと言う機能が備わっています。

参考画像としてオレンジ色括弧内の記述がコメントアウト文になります。

僕のエディタ画面では黄緑色で表示されます。

コメントアウトの目的

コメントアウトは2つの目的のもと行うことがあります。

  • 1 プログラムを一時的に実行させないようにする
  • 2 プログラムの途中でメモとして残す

1の場合、プログラムを別の記述で試したい場合があります。その場合、その都度分岐処理するのはめんどくさいので、コメントアウトすることで一時的に処理をしないようにすることが出来ます。

2の場合、プログラムを書くだけでは作成後にどこでどのようにしているのか分からなくなります。

小規模な場合は、記述しなくても分かるのですが大規模な場合は解読するのに何日も要することもあります。

そういったことを防ぐためにコメントを残しておきます。未来の自分や他の人に向けたコメントを残してあげる気持ちが大切です。

コメントアウトのやり方

VBAでのコメントアウトのやり方を2通り説明します。

  • 1 コメントアウトしたい行の先頭に[ ’ ](シングルクォーテーション)を付ける方法です。
  • 2 コメントアウトしたい範囲をドラッグで範囲指定しツールバーにあるコメントアウトする方法です。

1つめのやり方の場合、1行ずつ行うことができます。

2つめのやり方の場合、まとめてコメントアウトすることができます。[ツールバー]に画像のような[編集バー]が無い場合は設定する必要があります。

ツールバーに編集バーを表示する方法

[メニューバー]にある[表示]の[ツールバー]を左に進み[編集]にチェックマークを入れてください。

チェックを入れると[編集]バーが表示されます。

[編集]バーの青括弧部分をクリックするとコメントアウトを行います。

隣の赤括弧部分をクリックするとコメントアウト解除の役割を行います。

エディタ設定について

VBE画面は初期設定では白色で文字も黒いままです。

僕は目が白いものに対して苦手なため、設定変更しています。

その設定を皆さんにも共有します。

まず[メニューバー]の[オプション]をクリック

すると第2回で設定を行なったOption Explicitの[編集]タブが表示されるので[エディターの設定]タブに切り替えます。

すると[コードの表示色][フォント名][サイズ]が変更できます。

僕の設定を表にまとめたので参考にしてください。

部位名前景背景インジケーター
標準コード黄色自動
選択された文字自動自動自動
構文エラーの文字自動
次のステートメント自動黄色黄色
ブレークポイント茶色茶色
コメント黄緑自動
キーワード水色自動
識別子自動
ブックマーク自動自動水色
呼び出し元自動自動黄緑

フォントとサイズは初期設定のままです。

一時期は変えていたこともありましたが、最近は初期設定で落ち着いています。

まとめ

「まだ説明していない機能があったな」と補足事項として書き始めると意外と長い記事になってしましました。

この補足事項の記事のステップインとコメントアウトは僕がプログラミング初心者の頃に1度挫折した時に出会って以来お世話になっている機能です。

この機能のおかげで挫折から立ち直ったといっても過言ではないくらい強力な機能です。

当時の僕は、分からない処理はステップイン機能で1文ずつ実行し、コメントアウトで実行結果を記録する作業をやっていました(笑)「もっと早く言ってよ〜」って感じでした。

今回紹介した機能を使いこなして楽にプログラミングを行いましょう!