• 締切済み

VBSでテキストファイル内の数字の合計を求めたい

こんばんは! テキストファイル内に何行かの文章があり、そのすべての文章に含まれる数値の合計を求めるVBSを記述したいのです。 例文↓ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2014年11月12日 今日はダイソーで100円の商品を3つ購入した 明日は10時からテストがある ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ のような文章があったとき、2014,11,12,100,3,10の「和」を求めたいです。 自分の中では、配列とループ処理を用いて1文字ずつIsnumeric関数で判定していこうかなと考えていますが、他にスマートな方法はないでしょうか? ただし、以下の条件があります。 1)個人情報を含む会社のPCなので、インターネットは接続できない 2)ソフトウェアのインストールはOfficeも含めて不可で、windowsの標準機能のみ使用可能

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.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

すると、全ての回答が全文表示されます。
回答No.2

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

すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

思いつき 数字以外の文字を半角カンマに置換して、配列として要素を加算

すると、全ての回答が全文表示されます。

関連するQ&A