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 ~とか書かないと駄目ぽい