FSO WriteLine失敗する メモ | cashtrayのブログ

cashtrayのブログ

ブログの説明を入力します。

テーマ:
Excel を使っていて、あるシートのある部分だけをテキストを保存した場合に
FSO を使用する方も多いかもしれない。

ただ今日ちょっと困ったのでメモ

Sub hoge()
Dim fso

Set fso = CreateObject("Scripting.FilesystemObject")
With fso.createTextfile("c:\sandbox\hoge.txt")
.Writeline ("hoge")
.Close
End With

Set fso = Nothing
End Sub

でhogeの部分は何を入れてもいいわけではなく、時々ShiftJISに変換できない場合は
パラメータエラーとか言うエラーが発生するようだった。

ぐぐったら
fso.CreateTextFile("c:\sandbox\hoge.txt",true,true)
にする必要があるらしい。

なんでも、ExcelはUnicodeなのでテキストを作成するときにも、UNICODEを指定してやる必要があるという。
でないと、エラーで動かない。
そして、その指定をするパラメータがCreateTextfileの3つ目の引数だということらしい。

なるほどね。

あと今日はセルの値が#Value や #refになっているとき
そのセルの値をmsgbox すると失敗する事に気づいた。
CStr で変換するなり
on resume ~とか書かないと駄目ぽい
AD