0

スクリプト初心者です。

まずは、下記のHTML文の抜粋をご覧ください。(一部暗号化しています)

---<start of HTML>----

<BR><b>Interteeeettlintees)</b><BR><br>
<pre>
r25.otrr02.rr.bb ae18 40000000000 BL: r00.serrrr2.yy.bb be-3
          rrr       rrr       rrr       933       933       933     dddl
           ww       www       www        ee       eee       eee    tttt
    --------- --------- --------- --------- --------- --------- --------
      8215.60  12386.22  12386.22   8940.49  15168.94  15168.94       59

r30.ter05.dd.bb rr7 50000000000 BL: r01.ttttt2.rr.bb be-3
          gggg       rrr       eee       955       955       777     Pyyl
           tt       eee       eex        tt       ttt       M7    Cyyyt
    --------- --------- --------- --------- --------- --------- --------
      2912.23   7891.99   7891.99   3750.74   9034.22   9034.22       60

TOTAL

</pre><br>

--<end of HTML>----

preタグに挟まれたエレメントの中に、”BL:”を含む行が幾つかあります。(数は不定です)

この、”BL:”の直前には必ず整数(ボールド体の数値です)があり、その合計をVBScriptで求めたいです。

なお、preタグはこのページに1個しかありません。

スクリプト作り建てとしては、

1.

Dim elements 'outerHTMLのelements

Dim arrayTemp 'elementsを半角スペースで区切った一次元配列

Dim Total ' "BL:"のひとつ前の配列の整数値を加算する変数

以上は変数の宣言

Set elements = document.GetElementsByTagName("pre")

で変数elementsにpreタグを取得する。

2.

elements = Replace(elements,CStr(vbCrLf)," ")

でvbCrLfを半角スペースに置換する。

3.

Do

     If InStr(1,elements,"  ") > 0 Then

       elements = Replace(elements,"  "," ")

     Else

       Exit Do

     End If

Loop

でelementsに含まれる連続半角スペースを削除し、半角スペースを1個にする。

4.

arrayTemp = Split(elements," ")

でarrayTempにelementsを半角スペースで区切って一次元配列を挿入する。

5.

Total = 0.0

For i = 0 to arrayTemp.Length - 1

  If arrayTemp(i) = "BL:" Then

      Total = Total + CDbl(arrayTemp(i -1))/1000000000

 Endif

Next

でTotalに整数値を加算する。

で良いでしょうか?机上デバッグしたいので、どこかバグがあれば教えてください。

このスクリプトを部分実行すると、添付画像のエラーが出ます。どういう意味でしょうか?

質問の編集