VBA を使用してイミディエイト ウィンドウをクリアする
この記事では、VBA を使用して Microsoft アプリケーションの即時ウィンドウの内容をクリアする方法について説明します。
Microsoft アプリケーションの即時ウィンドウ
VBA に精通している場合は、即時ウィンドウを知っている必要があります。 イミディエイト ウィンドウは、さまざまな式のデバッグと評価に使用されます。
また、ステートメントを実行し、変数名を出力するためにも使用されます。 つまり、即時ウィンドウはプログラマーにとって不可欠なコンポーネントです。
Microsoft Excel では、VBA の即時ウィンドウは、Excel ファイルに関する回答をユーザーに提供するツールです。 さらに、コードをすばやく実行するのに役立ち、コードの結果も表示します。
Debug.Print
機能を使用して変数の現在の値を監視できるため、マクロを作成する際のデバッグが非常に簡単になります。
Microsoft Excel 内ですぐにウィンドウを開く場合は、次の手順を使用します。
-
[表示] メニューを開きます。
-
メニューから [イミディエイト ウィンドウ] オプションを選択します。
それ以外の場合は、ショートカットを使用して即時ウィンドウを開くこともできます。 ショートカット CTRL+G は、即時ウィンドウを開きます。
即時ウィンドウ内のコンテンツは、プログラマーを圧倒する可能性があります。 ただし、クラスター化されたデータ セット、変数、および式について心配する必要はありません。 いくつかのショートカットを使用すると、イミディエイト ウィンドウの内容を比較的簡単にクリアできます。
即時ウィンドウの内容をクリアするには、2つのオプションがあります。 最初のオプションは、ウィンドウのすべてのコンテンツを手動で削除することです。
2 番目のオプションは、VBA のプログラムを使用してウィンドウの内容をクリアすることです。 プログラムはタスクを自動化し、クリックするだけでウィンドウのすべてのコンテンツを削除できます (マクロを実行します)。
イミディエイト ウィンドウの内容を手動でクリアする
2つの方法で、即時ウィンドウのコンテンツを手動でクリアできます。 どちらの方法も非常に簡単で、以下で詳しく説明します。
>cls
コマンドを使用して、イミディエイト ウィンドウの内容を手動でクリアする
即時ウィンドウの内容をクリアする最初の方法は、>cls
コマンドを使用することです。 >cls
コマンドは、>Edit の定義済みコマンド エイリアスです。 ClearAll
コマンド。
すべてのコンテンツを削除するには、イミディエイト ウィンドウで >cls
コマンドを使用します。
ショートカット キーを使用してイミディエイト ウィンドウの内容を手動でクリアする
即時ウィンドウの内容をクリアする 2 番目の方法は、別のショートカット キーを使用することです。 ショートカット キーは、次の方法で使用する必要があります。
- CTRL+G
- CTRL+A
- 削除
上記の 3つのショートカットは、さまざまなタスクを実行して、現在のウィンドウの内容を消去するのに役立ちます。
- ショートカット CTRL+G を使用して、即時ウィンドウをアクティブにします。
- ショートカット CTRL+A を使用して、即時ウィンドウのコンテンツ全体を選択します。
- DEL キーを使用して、選択した内容を即時ウィンドウから削除します。
3つのショートカットを使用すると、即時ウィンドウの内容を簡単に消去できます。 VBA プログラムでも同じショートカットが使用されます。
VBA を使用してイミディエイト ウィンドウの内容をクリアする
VBA でプログラムを記述して即時ウィンドウの内容をクリアするには、さまざまな解決策があります。 さまざまなソリューションについて、以下で詳しく説明します。
ショートカットを使用して、VBA を使用してイミディエイト ウィンドウの内容をクリアする
最初の解決策では、CTRL+G、CTRL+A、DEL の 3つのショートカットを使用します。 . 即時ウィンドウをクリアする VBA プログラムは、次のように記述できます。
Sub example()
Dim i As Long
For i = 1 To 10
Debug.Print i
Next
Application.SendKeys "^g ^a {DEL}"
End Sub
変数 i
は、ループ インクリメント変数として定義されます。 1 から 10 までの範囲の i
の値は、Debug.Print
コマンドを使用して即時ウィンドウに出力されます。
ここでは、For
ループはオプションです。 空の場合、イミディエイト ウィンドウにいくつかの値を出力するようにプログラムに記述されています。
主なコマンドは Application.SendKeys
で、^g ^a {DEL}
で表される 3つのショートカットを取ります。 イミディエイト ウィンドウにすべてのコンテンツが表示されなくなりました。
ウィンドウにスペースを追加して、VBA を使用して明確な即時ウィンドウを表示する
イミディエイト ウィンドウのコンテンツ全体を削除することに少し躊躇している場合、これは理想的なソリューションです。 ウィンドウからコンテンツを削除する代わりに、ウィンドウにスペースを追加できます。
これにより、すべてのコンテンツが上に押し上げられ、明確で即時のウィンドウが表示されます。 この目的のために、次の VBA コードが記述されています。
Sub example()
Dim i As Long
For i = 0 To 100
Debug.Print " "
Next i
End Sub
スペースを印刷するには、VBA で次のコマンドを使用することもできます。
Debug.Print String(65535, vbCr)
提案された解決策は、キャレットの位置が即時ウィンドウの最後にある場合にのみ機能します。 このソリューションは、ウィンドウをインタラクティブに使用せず、Debug.Print
コマンドを使用してコンテンツを投稿するだけの場合に機能する可能性があります。
ただし、ウィンドウのコンテンツをナビゲートするなど、ウィンドウを積極的に使用する場合、ソリューションが理想的に機能しない可能性があります。
ウィンドウに新しい行を追加して、VBA を使用して明確な即時ウィンドウを表示する
3 番目の解決策も、即時ウィンドウのコンテンツを削除しないようにするためのハックです。 このソリューションは、新しい行を即時ウィンドウに追加し、コンテンツ全体を押し上げます。
タスクを実行するコードは次のとおりです。
Public Sub example(str As String, Optional clr As Boolean = False)
If clr= True Then
Application.SendKeys "^g^{END}", True
DoEvents
Debug.Print String(30, vbCrLf)
End If
Debug.Print str
End Sub
VBA コードはイミディエイト ウィンドウを開き、CTRL+END ショートカットはカーソルをイミディエイト ウィンドウの最後に移動します。 古い内容を上に移動するために、空の新しい行が即時ウィンドウに追加されます。
DoEvents
は実行の重要な部分です。 これはマクロの実行をもたらし、プロセッサが他のタスクを実行し、他のイベントを同時に認識できるようにします。
まとめ
Microsoft Office アプリケーションは、ユーザーに多数の機能を提供します。 VBA の追加により、ユーザーは数行のコードで自動化されたタスクを簡単に実行できるようになりました。
マクロを作成して、即時ウィンドウのすべての内容をクリアし、そのマクロを何度でも使用できます。
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub