つらつら Excel VBA

私の備忘録です。

ステータスバーに進捗を表示

ステータスバーにプログレスバーぽいヤツを作った!小文字のLはカッコいい気がする!

GIF見れない人用

よく見る■のパターン


以下ソース。

Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)

Sub ステータスバーのテスト()
    
    'ThisWorkbook.Activate
    Application.StatusBar = "処理開始"
    Sleep 2000
    
    Dim i As Long
    For i = 1 To 100
        Application.StatusBar = String(i, "l") 'iの数だけ文字を繰り返す。この関数は最大255文字。
        'Cells(1, 1).Value = i '確認用
        Sleep 30
    Next i
    
    Application.StatusBar = "終了しました"
    Sleep 2000
    Application.StatusBar = False
    
End Sub




おまけ。ウィンドウサイズを狭めるとこうなる。エラーにはならない。

表示限界なのかバグってるのか何が起きているのか分からないが、以下のコードでステータスバーの文字をセルに出力できている。

Cells(1, 1).Value = Application.StatusBar

調査はしません。




おまけのおまけ。
本記事のGIF動画キャプチャ中にPCが重くてステータスバーが、というかエクセルの表示が固まることが多々あった。
ループの中にDoEventsを入れることで表示が安定した。

以上。