Editor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ウィンドウの使い方について説明します。G初期設定では、コードウィンドウの下にドッキング表示されます。ウィンドウの基本的な使い方ウィンドウ内での操作により、ウィンドウに変数の値を出力したり、ステートメントを実行したりできます。・VBA実行中は、実行中のプロシージャー内で実行される。Explicitがない)上で実行される。このように考えて以下を読むと理解しやすいと思います。これはそのように考えると理解しやすいという事で、正確にはスコープ(Public,Private)の扱いに違いがあります。実行中のプロシージャーから参照可能な変数については、?に続けて変数を書いてEnterすることで値を表示できます。数値の場合は先頭に符号が付きますので、正数の場合は半角スペースが先頭に付いて表示されます。配列全体を指定するとエラーとなります。配列の要素を指定すれば表示できます。既定のプロパティが無い場合や、戻り値がオブジェクトの場合はエラーとなります。変数のデータ型を調べる事が出来ます。複数の変数を確認したい場合は、ローカルウィンドウが便利です。ウィンドウの最後にモジュールレベル変数の値を表示VBA実行中ではない場合でも、モジュールレベル変数であれば表示できます。プロシージャー「sample」を実行しておいて、その後に、?pVvarで値が表示されます。Privateなモジュールレベル変数を表示する場合は、モジュール名で修飾します。非実行中であっても、?オブジェクト.プロパティで表示できます。※戻り値が単一の値以外(配列やオブジェクト)はエラーになります。※戻り値のあるメソッドはプロパティ同様に扱えます。Ctrl+Spaceで入力候補が表示されます。VBA関数の結果を表示VBAの組み込み関数の結果を表示できます。作成したFunctionプロシードャーの戻り値を確認できます。※プロシージャーがPrivateの場合は、モジュール名で修飾してください。?Module1.文字列編集?はPrintの糖衣構文です?はPrintの糖衣構文(読み書きしやすさのための書き方)です。ウィンドウ内では、「?」でも「Print」でもどちらで記述しても同じになります。プロシージャー内で「?」を記述すると、自動で「Print」に置換されますが、このPrintだけではエラーとなってしまいます。ステートメントを実行VBA実行中に変数の値を変更?を書かずに、変数への代入式を書いてEnterすることで、変数の値を変更できます。iに3が入っているときに、i=1これでEnterして、再度iの値を表示しています。モジュールレベル変数の値を変更VBAのモジュールレベル変数は、VBAの実行が終了した後でも、その値を保持しています。モジュールレベル変数については、VBA実行中ではない場合でも変更できます。変更方法は、前記のVBA実行中に変数の値を変更と同じです。※モジュールレベル変数がPrivateの場合は、モジュール名で修飾してください。オブジェクトのプロパティの値を変更?を書かずに、プロパティへの代入式を書いてEnterすることで、プロパティの値を変更できます。A1セルに"test"が入っているときに、range("A1")="てすと"これでEnterして、再度A1セルの値を表示しています。Trueデバッグ中にVBAが途中終了した場合、Application.ScreenUpdatingがTrue状態に戻らない場合があり、クリックしても画面が変わらない等の症状になる場合があります。Trueを入れてEnterしてください。途中でVBAが終了してしまうと、そのままになってしまい、新たなイベントが発生しなくなります。Trueを入れてEnterしてください。プロシージャーを実行プロシージャーを直接起動できます。sampleと入力してEnterしています。実行できるプロシージャーは特に制限はありません、引数も指定できます。プロシージャーがPrivateの場合VBA実行中は、その時点で参照可能なプロシージャーはそのまま実行できます。その時点で参照出来ない(スコープ範囲外の)Privateプロシージャーは、モジュール名で修飾してください。VBA停止中は、Privateプロシージャーはモジュール名で修飾してください。ウィンドウに出力できます。変数・定数・式は、単一の値である必要があります。配列やオブジェクトは出力できません。;(セミコロン)に続けて書かれた変数・定数・式の値は、改行されずに表示されます。,(カンマ)に続けて書かれた変数・定数・式の値は、一定の字数間隔をあけて表示されます。ウィンドウで?で表示する場合でも使えます。ウィンドウの内容は後ろにどんどん追加されていってしまいます。(一定行数に達すると、古いものが消されます。)どこかの時点で全消去したい時は、ウィンドウ内の文字列を全選択(Ctrl+A等)して「Delete」してください。ウィンドウでは前述のとおり任意のステートメントを実行できます。(Dim、With等、実行出来ないステートメントはあります)ただし、1行で確定(1行で処理が完結)していなければなりません。複数行をまとめて実行することはできません。If)は普通に書くことはできません。ウィンドウで複数ステートメントを実行するには、:(コロン)で複数ステートメントを1行に書いて実行します。このような方法については、以下でいろいろなパターンが紹介されています。Explicitにかかわらず変数宣言の必要がありません。イミディエイトではいきなり変数を使う事が出来ます。その変数はイミディエイト内で値が保持されます。Withは使えませんので、変数に入れることで対応します。b.Value:Next普通のプロシージャーに書き直してみると理解できると思いますが、これは、選択範囲内の空白セルに直ぐ上のセルを入れています。このくらいになると、プロシージャーを書いたほうが良いですね。こんなことも可能です。(ちょっと現実離れしてはいますが参考まで)以上のように、ある程度はプロシージャーを書くのと同様の事が出来ます。タイピングが気にならなければ、このような使い方も可能だという紹介です。ウィンドウに入力した内容は、エクセルを閉じると消えてしまいますので、1回その場だけの実行として素早く実行したい場合に限定されます。通常は、普通にプロシージャーを書いたほうが良いでしょう。ウィンドウは、VBAデバッグではなくてはならないものです。特段に難しい使い方を覚える必要はありませんが、最低限の使い方はしっかり覚えておきましょう。ウィンドウと使い分けて、効率良くデバッグをしてください。見るTRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)無効な前方参照か、コンパイルされていない種類への参照です。ウィンドウこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。ウィンドウこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。