重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBScriptで指定した範囲の中で対象の文字列が含まれている件数を数えたいと思っています。

やり方が思いつかずわからないので助けてください。
ログの内容は下記のようになっています。

/*/*/*/*/*/*/*/*/*/*/*
2009/08/08
AM9:00
LOG START
/*/*/*/*/*/*/*/*/*/*/*
PC01 08:00
PC05 08:10
PC100 07:00
/*/*/*/*/*/*/*/*/*/*/*
LOG END
/*/*/*/*/*/*/*/*/*/*/*



/*/*/*/*/*/*/*/*/*/*/*
2009/08/08
AM10:00
LOG START
/*/*/*/*/*/*/*/*/*/*/*
PC101 09:00
PC55 09:20
PC111 08:00
PC101 09:50
/*/*/*/*/*/*/*/*/*/*/*
LOG END
/*/*/*/*/*/*/*/*/*/*/*
.
.
.
一時間ごとにログに情報が書き込まれているわけですが「LOG START」から「LOG END」までの間に指定文字列が含まれる行をカウントしたいと思っています。
その一時間後との値をエクセルに保存していきたいのですが・・・
ヒントなどいただけないでしょうか?

A 回答 (2件)

VBSでもExcelのVBAでもログが追記である以上ファイルの先頭から1行ずつ読むことは変わらないと思います。



■文字検索
http://www.whitire.com/vbs/tips0026.html
を使い、読み込んだ行に「LOG START」が含まれていたら次の行から指定文字列のカウントを開始し、「LOG END」を見つけたらカウントを終了させる。
指定文字列の検索よりも「LOG END」の検索を先に記述した方が効率的かも。

■Excelを起動する
http://www.whitire.com/vbs/tips0171.html
リンク内にセルへの格納が書かれているので参考になると思います。

この手のログ集計をする場合、既に保存されたデータなのか新しいデータなのかをどう判定するかがキーとなります。
頑張って下さい。
    • good
    • 0

Excelに保存するのなら、ExcelVBAではダメなのでしょうか?


VBSでもExcelを起動させなければいけないわけですし、ログの行数によっては
一旦シートに取り込んで加工していく方法もありそうですが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!