Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


29849 / 76738 ←次へ | 前へ→

【52163】OpenAsTextStreamで、テキストファイルの特定の文字列に文字を追加したい
質問  moto  - 07/10/26(金) 0:04 -

引用なし
パスワード
   こんばんは。
初めて利用させて頂きます。

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

0 hits

【52163】OpenAsTextStreamで、テキストファイルの特定の文字列に文字を追加したい moto 07/10/26(金) 0:04 質問
【52164】Re:OpenAsTextStreamで、テキストファイル... ichinose 07/10/26(金) 8:29 発言
【52182】Re:OpenAsTextStreamで、テキストファイル... moto 07/10/26(金) 22:42 お礼
【52233】Re:OpenAsTextStreamで、テキストファイル... moto 07/11/2(金) 0:50 質問
【52235】Re:OpenAsTextStreamで、テキストファイル... ichinose 07/11/2(金) 8:36 発言
【52275】Re:OpenAsTextStreamで、テキストファイル... moto 07/11/4(日) 21:22 質問
【52278】Re:OpenAsTextStreamで、テキストファイル... neptune 07/11/4(日) 23:04 発言
【52280】Re:OpenAsTextStreamで、テキストファイル... moto 07/11/5(月) 0:07 質問
【52283】Re:OpenAsTextStreamで、テキストファイル... りん 07/11/5(月) 1:15 発言
【52290】Re:OpenAsTextStreamで、テキストファイル... ichinose 07/11/5(月) 19:42 発言
【52301】Re:OpenAsTextStreamで、テキストファイル... moto 07/11/7(水) 0:27 お礼
【52314】Re:OpenAsTextStreamで、テキストファイル... moto 07/11/8(木) 0:20 お礼

29849 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free