インタプリタ言語であるVBAの利点の1つは、アプリケーション全体をコンパイルしなくても、個々のプロシージャを実行できることです。それをどのように行うかを正確に調べてみましょう。
標準モジュールでは、引数のないパブリックルーチン内にカーソルを置き、[F5]を押すと、そのルーチンがすぐに実行されます。
ルーチンをステップスルーする場合は、[F5]を押す前にいずれかの行にブレークポイントを設定するか、[F8]( "Step Into")を押して、すぐにルーチンのコードのステップを開始できます。
これは、標準コードモジュールのパブリック関数でも機能します。重要なのは、関数がオプションの引数でさえも、引数を受け入れることができないということです。
1つ以上の引数(オプションの引数も含む)を受け取るパブリックプロシージャを実行しようとするとどうなりますか? 「実行>マクロの実行」コマンドが実行されます:
これを発見したことは信用できません。 F5キーを押してプライベートをデバッグできるという事実を伝えてくれたTerryChapmanに特に感謝します。 公的手続きだけでなく、適切な手続き。
テリーのように、私はデバッグ中に一時的にプライベートプロシージャをパブリックに変更していました。結局、私はそれをする必要はまったくありませんでした。
テリーが私の仮定に疑問を投げかけた後、私は自分がどれだけ逃げることができるかを見ることにしました。思っていたよりもはるかに多いことがわかりました!
信じられないかもしれませんが、引数を取るプライベートプロシージャをなしでデバッグできます。 一時的に公的手続きに変更します。これを行うには、イミディエイトウィンドウから完全修飾プロシージャ名を呼び出す必要があります。 「完全修飾名」とは、{ModuleName}.{ProcedureName}
の形式の名前を意味します 。
この例を確認してください:
しかし、私の言葉を信じないでください。試してみてください!