VBAを使用したAメッセージオンザExcelのステータスバーを表示する方法
Excelのステータスバーはコードモニターとして使用できます。 VBAコードが長く、VBAを使用していくつかのタスクを実行する場合、画面のちらつきが表示されないように、画面の更新を無効にすることがよくあります。ただし、このため、コードで何が起こっているのかを知ることはできません。
Excelのステータスバーがどこにあるかわからない場合は、次のようになります:
Excelのステータスバーを使用すると、コードの実行を妨げることなく、Excelから情報を取得できます。マルコのステージをステータスバーに表示したり、プログレスバーとして使用したりできます。
Excelのステータスバーにメッセージを表示するVBAコード
Application.StatusBar = "Message"
StatusBarは、テキストを入力として受け取るApplicationオブジェクトのプロパティです。
この例では、実行中の関数を示しています…
Sub DisplayMessageOnStatusBar() Application.ScreenUpdating = False Application.StatusBar = "Calling function one " ' call function_1 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Calling function two" 'Call function_2 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Calling function Three" 'Call function_3 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub
この例では、画面の更新は最初はFalseに設定されています。
ここで、function_1を呼び出す前に、function1を呼び出しているメッセージを表示しています。
Application.Wait(Now + TimeValue( “00:00:2″))このコード行は、長い関数呼び出しを偽造するためのものであり、ステータスバーに2秒で表示されます。
すべての関数呼び出しの前にそれを行い、最後にステータスバーを空白(「」)に設定しました。
ステータスバーメッセージは、長いコードで作業しているときにメッセージを表示するのに非常に便利です。コードが複数のステージを通過するか、長いループを実行する場合、ステータスバーにそのことを表示して、コードが実行されていることをユーザーに知らせることができます。そうしないと、ユーザーはシステムがハングしたか何かだと思うかもしれません。
このワンライナーを使用して、Excel 2016、2013、2010、2007のVBAを使用してステータスバーの情報をスマートに取得できるようになりました。
古い投稿
特定のvbaマクロ/コードは、必要なアクションを実行または実行するのに長い時間がかかります。コードの先頭でApplication.ScreenUpdating = Falseの行を使用して画面の更新をオフにした場合、ユーザーがコードを実行すると、何が起こっているのかわからず、コンピューターシステムが応答していないと見なされます。コードにステータスバーにステータスメッセージを表示するように依頼して、ユーザーにコードの現在のステータスを通知します。
これは、行2から最後の行までの列Aの値を示すメッセージボックスを表示する簡単なコードです。ステータスバーには、コードの実行中に「マクロ実行中」というメッセージが表示され、コードが完了すると、デフォルトのExcelメッセージの1つである「準備完了」が表示されます。
Option Explicit Sub macro1() Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = True With Worksheets(“Sheet1”) lrow = .Range(“A” & .Rows.Count).End(xlUp).Row For i = 2 to lrow Application.StatusBar = “Macro running” Msgbox .Range(“A” &i).Value Next i End With Application.StatusBar = “” Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
上記のコードをファイルにコピーするには、*キーボードのAlt + F11を押します。
-
左側に、MicrosoftExcelオブジェクトが表示されます。
-
右クリックして[挿入]を選択します。
-
次に、[モジュール]をクリックします。
-
コードを右側のコードウィンドウにコピーします。
以下のモジュールに投稿されたコードを見ることができます-
ここで、コードの各行の機能を理解しましょう-まず、DISPLAYSTATUSBARをtrueに設定し、次にステータスバーのメッセージを設定します。コードの最後で_Application.StatusBar =“” _を使用すると、次のように戻ります。 READYであるデフォルトのExcelメッセージ。
これは、マクロの実行中のステータスバーの写真です。
マクロが終了すると、ステータスバーは次のように表示されます–
同様に、コードのさまざまな部分でステータスバーを更新して、マクロの実行中に何が起こっているかをユーザーに知らせることができます。
複数のプロセスをカバーする1つ以上のマクロが存在する場合があります。このステータスバーは、マクロがどのプロセスに到達したかを知るのに役立ちます。
私たちのブログが気に入ったら、Facebookで友達と共有してください。また、TwitterやFacebookでフォローすることもできます。
_私たちはあなたからの連絡をお待ちしております。私たちの仕事を改善、補完、または革新し、あなたのためにそれをより良くする方法を教えてください。 [email protected]_までご連絡ください
人気の記事:
link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット]
link:/ forms-and-functions-introduction-of-vlookup-function [ExcelでVLOOKUP関数を使用する方法]
link:/ Tips-countif-in-microsoft-excel [ExcelでCOUNTIF関数を使用する方法]
link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]