- ベストアンサー
VBSを使用し、指定フォルダ内のテキストファイルを一つに結合させたい
お世話になります。 引数1=結合したいテキストファイルの存在するフォルダパス("Y:\Work") 引数2=結合後のテキストファイルのフルパス("Y:\Temp\Merge_All.csv") を引き渡し、 引数1で指定したフォルダ内に存在する、 拡張子"dat"の複数ファイルを一つに結合する共通モジュール を作成したいと思っています。 下記モジュールをメインモジュールから何度か呼び出しているのですが、 一度目は問題なく実行されるのですが、 二度目に実行する場合に、 Set oTextFile = oFs.OpenTextFile(sFilename, 1)の行で エラー メッセージ "Runtime Error! Abnormal Program Termination." が表示され処理が中断してしまい困っています。 お気づきの問題点がございましたら、是非お時間のある時にご指導いただけると幸いです。 ヒントでもかまいませんので、よろしくお願いいたします。 ついでといってはなんですが、、、 本来はヘッダー付ファイルを先頭ファイルのヘッダーだけを残して 一つに結合したいと思っていたのですが、 ファイルサイズが膨大なため、ReadLineでは遅すぎてあきらめ、 ヘッダーなしファイルをReadAllで単純結合していく方法にしました。 ヘッダー付ファイルを結合する良い方法をご存知の場合は、 是非合わせてご教授お願いいたします。 Sub MergeFiles(sFolderPath, sExpFilePath) Const ForReading = 1 Set oFolder = oFS.GetFolder(sFolderPath) Set oExpFile = oFS.CreateTextFile(sExpFilePath) For Each sFilename In oFolder.Files sFileExtension = oFS.GetExtensionName(sFilename) If LCase(sFileExtension) = "dat" Then Set oTextFile = oFS.OpenTextFile(sFilename, ForReading) ←二度目のここでエラーなんです sExpLine = oTextFile.ReadAll oTextFile.Close oExpFile.WriteLine sExpLine End If Next oExpFile.Close End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- tkrn
- ベストアンサー率53% (33/62)
- steerboard
- ベストアンサー率65% (13/20)
お礼
素敵です!tkrnさん! ばっちりですーーー!! あやうく(またしても?)「何やってんだかコード」を書き残してしまうとこでした。 また、お世話になることもあろうかと思いますが、 ボケ質問なこれに懲りずお力をお貸しください。 的確、かつ早いご回答本当にありがとうございました。