| 
    
     |  | こんばんは。 初めて利用させて頂きます。
 
 SQLで抽出したテキストファイルのある特定の文字列に任意の
 文字(アルファベット等)を追加するツールをエクセルのマクロで
 作成しています。今までAccessのVBAは使用したことがあるのですが、
 新しい職場では主にエクセルのマクロがメインで、上記のツールも
 エクセルのマクロで作ることになりました。
 
 正直、エクセルのマクロを組むのは経験が全くなかったので、
 どのように組めばいいのかイメージがわきませんでした。
 書籍やサイト等で調べて、FileSystemObjectのOpenAsTextStreamで
 テキストファイルの更新ができるようでしたので、色々右往左往
 している状況です。
 
 イメージとしましては、エクセルのシート上にあるコマンドボタンを
 押すとネットワーク上のフォルダにあるテキストファイルの特定の
 文字列にアルファベットを追加するツールになります。
 
 コードは下記の内容で色々試しているのですが中々上手くいきません。
 テキストファイルを更新可能で開く段階で躓いています・・・。
 
 どうか、ご指導の程宜しくお願い致します。
 
 (1)--------------------------------------------------------------------
 Sub test1()
 Dim FSO, TextFile, buf As String
 Set FSO = CreateObject("Scripting FileSystemObject")
 
 Set TextFile = FSO.OpenTextFile _
 ("C:\Documents and Settings\*****\デスクトップ\新しいフォルダ¥DDL\sample,sql")
 
 buf = TextFile.ReadAll
 MsgBox buf
 Set FSO = Nothing
 End Sub
 
 ※上記マクロを実行すると、サンプルのファイルは表示されますが、
 編集ができません。ヘルプを見ると追記はできるようですが、編集
 (上書き)はできないみたいです。
 
 (2)--------------------------------------------------------------------
 Sub test2()
 Dim F, S
 Dim fs, TextFile, buf As String
 Set fs = CreateObject("Scripting FileSystemObject")
 
 Set F = fs. GetFile _
 ("C:\Documents and Settings\*****\デスクトップ\新しいフォルダ¥DDL\sample.sql")
 Set fs = F.OpenAsTextSteam(ForWriting, TristateUseDefault)
 
 S = fs.ReadLine
 MsgBox S
 fs. Close
 End Sub
 
 ※上記のマクロを実行すると「プロシージャの呼び出し、または引数が不正です」とエラーが表示されます。
 
 (3)---------------------------------------------------------------------
 Sub TextStreamTest()
 
 Const ForReading = 1, ForWriting = 2, ForAppeding = 3
 Const TristaeUseDefault = -2, Tristatetreu = -1, TristateFalse = 0
 
 Dim fs, F, ts, S
 Set fs = CreateObject("Scripting FileSystemObject")
 
 fs. CreateTextFile "text1.txt"
 Set F = fs.GetFile("test1.txt")
 Set ts = F.OpenAsTextStream _
 ("C:\Documents and Settings\*****\デスクトップ\新しいフォルダ¥DDL\sample.sql",ForWriting,TristaeUseDefault)
 ts. Close
 End Sub
 
 ※上記マクロを実行する「引数の数が一致していません。または、不正なプロパティを指定しています」と
 エラーが表示されます。
 
 (4)---------------------------------------------------------------------
 Sub TextStreamTest()
 
 Const ForReading = 1, ForWriting = 2, ForAppeding = 3
 Const TristaeUseDefault = -2, Tristatetreu = -1, TristateFalse = 0
 
 Dim fs, F, ts, S
 Set fs = CreateObject("Scripting FileSystemObject")
 
 fs. CreateTextFile "text1.txt"
 Set F = fs.GetFile("test1.txt")
 Set ts = F.OpenAsTextStream _
 ("C:\Documents and Settings\*****\デスクトップ\新しいフォルダ¥DDL\sample.sql",2)
 ts. Close
 
 Set ts = F.OpenAsTextStream (ForWriting,TristaeUseDefault)
 S = ts.ReadLine
 MsgBox S
 ts. Close
 End Sub
 
 ※上記マクロを実行すると「型が一致しません」とエラーが表示されます。
 
 
 また、上記の作業中、いつの間にか「sample.sql」の中のデータが無くなって
 いて、「もう抽出するデータはありません」(だったかな?)といったエラー
 が表示されて「sample.sql」を開くとデータが無くなっています。
 
 どのタイミングで中のデータが無くなってしまっているのかわからないのですが、
 何か原因があるのでしょうか?
 
 夜分に長々と質問させて頂きましたが、ご指導の程宜しくお願い致します。
 
 
 OS:WindowsXP
 Excel:2003
 
 
 |  |