忍者ブログ
JavaScript , Java , DOS , HTML(CSS) , JSP , SQL , VB , VBScript , ・・・etc などの覚書
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ForやDoでループを行う時、後どのぐらいで終わるかなどを表示させたい時に、表す方法(簡易プログレス)



 Dim blnSaveStatus As Boolean
Dim strBarNow As String
Dim strBarWk As String
Dim intSincyoku As Integer
Dim intCNT As Integer
Dim i As Integer

blnSaveStatus = Application.DisplayStatusBar
Application.DisplayStatusBar = True
strBarNow = "現在 0%:□□□□□□□□□□"
Application.StatusBar = strBarNow       ・・・①

For i = 1 To ループ回数
    ~~ 以下ループ内の処理 ~~
            :
            :
    intSincyoku = Int(i * 100 / ループ回数)         ・・・②
    intCNT = Int(i * 10 / ループ回数)          ・・・③

    strBarWk = "現在 " & intSincyoku & "%:" & _
    String(intCNT,"■") & String(10 - intCNT,"□")

    If (strBarWk <> strBarNow) Then
        Application.StatusBar = strBarWk          ・・・④
        strBarNow = strBarwk
    End If

Next i

Application.StatusBar = False                  ・・・⑤
Application.DisplayStatusBar = blnSaveStatus

■解説
 ①ステータスバー(EXCEL画面の左下)に表示させる。
 Application.StatusBar = 表示したい文字列
    例では、一度変数にいれてから表示している。

 ②進捗率をもとめる
    現在のカウントに100をかけ、全体の回数で割る

 ③マス単位にする
    10個マスだから10%単位で表す

 ④ステータスバーに表示
    ステータスバーに③の数ぶん■を表示し、10から③の数ぶん引いた数、□を表示する
 ※IF文(If (strBarWk <> strBarNow) Then ・・・) にしているのは、
  変化がある時だけ、表示させるようにしている。

 ⑤ステータスバーの盛業をEXCELに戻す
    必ず行う。

PR
HOME
ブログ内検索
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Copyright © [ moriBlog-memo ] All rights reserved.
Special Template : 忍者ブログ de テンプレート Special Thanks : 忍者ブログCommercial message : [PR]