dポイントプレゼントキャンペーン実施中!

こんばんは!

テキストファイル内に何行かの文章があり、そのすべての文章に含まれる数値の合計を求めるVBSを記述したいのです。

例文↓
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2014年11月12日
今日はダイソーで100円の商品を3つ購入した
明日は10時からテストがある

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

のような文章があったとき、2014,11,12,100,3,10の「和」を求めたいです。
自分の中では、配列とループ処理を用いて1文字ずつIsnumeric関数で判定していこうかなと考えていますが、他にスマートな方法はないでしょうか?


ただし、以下の条件があります。
1)個人情報を含む会社のPCなので、インターネットは接続できない
2)ソフトウェアのインストールはOfficeも含めて不可で、windowsの標準機能のみ使用可能

A 回答 (3件)

参考に


Option Explicit
Dim objRE
Dim strOpenFile
Dim objFSO
Dim objTextStream
Dim strText
Dim myMatches
Dim myMatch
Dim myTotal

Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = "\d+"
objRE.Global = True
strOpenFile = "C:\**********\Test.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFSO.OpenTextFile(strOpenFile, 1)
Do Until objTextStream.AtEndOfLine = True
  strText = objTextStream.ReadLine
  Set myMatches = objRE.Execute(strText)
  For Each myMatch In myMatches
    myTotal=myTotal + CLng(myMatch.Value)
  Next
Loop
objTextStream.Close
WScript.Echo "合計 " & myTotal
Set objFSO = Nothing
Set objTextStream = Nothing
Set objRE = Nothing
    • good
    • 0

同じく方針のみだけど:



RegExpを使って数値(正の整数のみと判っている)を抜き出す
・パターンを数値を示すものにする [0-9]*
・Execute メソッドで検索実行
  → Matches コレクションオブジェクトが帰ってくる
     こいつから数値の個数、数値の値を取り出して和をとっていく

みたいなかんじでどうですか?
    • good
    • 0

思いつき



数字以外の文字を半角カンマに置換して、配列として要素を加算
    • good
    • 0

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