|
こんばんは。
初めて利用させて頂きます。
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
|
|