同じメソッド内でも動作状況を出力させたい時ありますよね
そんなときにどこでも使える配列を順番に呼び出して出力すればいいって思うのですが
グローバル変数はあんまり置きたくないなって思う方にオススメのやり方です
Option Explicit
'環境office365で確認
'Constで配列を宣言するとエラーになる、調べた所宣言できないので↓の形のステータス情報を表示させる
Const Arr_status As String = "1/5 : 起動ボタン," & _
"2/5 : 動作確認中," & _
"3/5 : 実行中," & _
"4/5 : 記録中," & _
"5/5 : 完了"
Sub Main()
ViewStatus (Array()) '何もない配列を渡して初期化する
ViewStatus (Split(Arr_status, ",")) 'Splitでカンマの位置で配列に変換する
ViewStatus (Split(Arr_status, ",")) '必要回数+1回呼び出してあげる
ViewStatus (Split(Arr_status, ","))
ViewStatus (Split(Arr_status, ","))
ViewStatus (Split(Arr_status, ","))
ViewStatus (Split(Arr_status, ",")) '最後に非表示になる
End Sub
'Application.StatusBar = 表示させたい文字
'Application.StatusBar = Falseで非表示
Sub ViewStatus(arr As Variant)
If UBound(arr) = -1 Then'配列なしの場合
Application.StatusBar = False
Exit Sub
End If
Dim i As Long
Dim strNow As String: strNow = Application.StatusBar
For i = LBound(arr) To UBound(arr)
If Application.StatusBar = False Then
Application.StatusBar = arr(i)
ElseIf i = UBound(arr) Then
Application.StatusBar = False
ElseIf Application.StatusBar = arr(i) Then
Application.StatusBar = arr(i + 1)
End If
If strNow <> Application.StatusBar Then
Exit Sub
End If
Next i
End Sub



コメントを残す