Excelのステータスバーはコードモニターとして使用できます。 VBAコードが長く、VBAを使用していくつかのタスクを実行する場合、画面のちらつきが表示されないように、画面の更新を無効にすることがよくあります。ただし、このため、コードで何が起こっているのかを知ることはできません。

Excelのステータスバーがどこにあるかわからない場合は、次のようになります:

unnamed

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秒で表示されます。

pasted image 0

すべての関数呼び出しの前にそれを行い、最後にステータスバーを空白(「」)に設定しました。

ステータスバーメッセージは、長いコードで作業しているときにメッセージを表示するのに非常に便利です。コードが複数のステージを通過するか、長いループを実行する場合、ステータスバーにそのことを表示して、コードが実行されていることをユーザーに知らせることができます。そうしないと、ユーザーはシステムがハングしたか何かだと思うかもしれません。

このワンライナーを使用して、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オブジェクトが表示されます。

  • 右クリックして[挿入]を選択します。

  • 次に、[モジュール]をクリックします。

  • コードを右側のコードウィンドウにコピーします。

以下のモジュールに投稿されたコードを見ることができます-

img1

ここで、コードの各行の機能を理解しましょう-まず、DISPLAYSTATUSBARをtrueに設定し、次にステータスバーのメッセージを設定します。コードの最後で_Application.StatusBar =“” _を使用すると、次のように戻ります。 READYであるデフォルトのExcelメッセージ。

これは、マクロの実行中のステータスバーの写真です。

img2

マクロが終了すると、ステータスバーは次のように表示されます–

img3

同様に、コードのさまざまな部分でステータスバーを更新して、マクロの実行中に何が起こっているかをユーザーに知らせることができます。

複数のプロセスをカバーする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関数を使用する方法]