Top > VBScript > IEでプログレスバー


Option Explicit

Dim objIE
Dim i

'IEオブジェクト.
Set objIE = Createobject( "InternetExplorer.Application" )

' 初期化.
Call InitProgressbar()

' 実行.
For i = 1 To 100
    Call ActionProgressbar( 100 , i )
    WScript.Sleep(10) ' 10msec間隔で更新.
Next

' 終了.
objIE.Quit
Set objIE = Nothing


'====== 初期化 ======.
Function initProgressbar()

    '初期ページを表示します
    objIE.Navigate "about:blank"

    'ページを表示します
    objIE.Document.Write "<html>"
    objIE.Document.Write "<head>"
    objIE.Document.Write "<title>プログレスバー</title>"
    objIE.Document.Write "</head>"
    objIE.Document.Write "<body bgcolor='#0c0c0c'>"
    objIE.Document.Write "<table border=0 width='100%' height='100%'>"
    objIE.Document.Write "  <tr>"
    objIE.Document.Write "    <td align='left' width='80%'>"
    objIE.Document.Write "      <hr id='progressbar' style='height=50;width=0;color:#fcfcfc;'>"
    objIE.Document.Write "    </td>"
    objIE.Document.Write "    <td align='right' width='20%'>"
    objIE.Document.Write "      <span id='per' style='color:#fcfcfc;'>0 %</span><br>"
    objIE.Document.Write "    </td>"
    objIE.Document.Write "  </tr>"
    objIE.Document.Write "</table>"
    objIE.Document.Write "</body>"
    objIE.Document.Write "</html>"

    'IEの表示設定.
    objIE.Width = 300
    objIE.Height = 50
    objIE.AddressBar = False
    objIE.MenuBar = False
    objIE.ToolBar = False
    objIE.Resizable = False
    objIE.Statusbar = False
    objIE.Visible = True

End Function

'====== 実行 ======.
Function ActionProgressbar( pMax, pCnt )

    Dim perValue
    Dim progValue
    Dim i

    perValue = Int( pCnt / pMax * 100 )
    progValue = perValue * 2

    objIE.Document.all( "progressbar" ).style.width = progValue
    objIE.Document.all( "per" ).InnerText = perValue & " %"

End Function

10msec毎にプログレスバーの更新を行うサンプルです。

サンプルはfor文で回していますが、実際は処理の区切りでパーセンテージを進める処理に置き換えれば使えます。

課題:
 表示位置の指定の仕方が分からない。
 トップ画面にする方法が分からない。



Copyright © 2015 AchaPorutePiipo All Rights Reserved.