FileSystemObjectを使用してテキストファイルを出力する方法
やりたい事
FileSystemObjectを使用してテキストファイルを出力してみます。
VBAでテキストファイルを出力する方法は2つこの記事で紹介する「FileSystemObject」と別記事で解説しているOpenステートメントを使用した方法があります。
どっちを使えばいいか問題については、パフォーマンス的にも差はあまりないみたいですので本当に好みの書き方をすればよいと思います。
強いてメリットデメリットをあげるとすれば、「FileSystemObject」のメリットはファイル出力以外の他にも便利なメソッドを備えているのでそれらのメソッドを使用する場合は有用です。
デメリットは、「FileSystemObject」を「Microsoft Scripting Runtime」の参照設定でインスタンス化した場合にそのマクロを配布した先の環境が参照設定をしていない時にエラーが発生してしまう点でしょうか。
「CreateObjectでインスタンスを作成する」方法で実装すれば問題がないので気をつけておけばいいだけですが(^^)
サンプルコード
Sub outputTextFileSystemObject() Dim objFso As Object Dim objTso As Object Set objFso = CreateObject("Scripting.FileSystemObject") Set objTso = objFso.OpenTextFile(Filename:="D:\Excel\sample.txt", _ IOmode:=8, _ Create:=True) objTso.WriteLine "aaa" Set objTso = Nothing Set objFso = Nothing End Sub
構文
object.OpenTextFile (filename, [ iomode, [ create, [ format ]]])
名前 | 必須/省略可能 | 説明 |
---|---|---|
object | 必須 | 常にFileSystemObject の名前。 |
filename | 必須 | 開くファイルを識別する文字列式です。 |
iomode | 省略可能 | 入力/出力モードを示します。ForReading、ForWriting、またはForAppendingのいずれかの定数を指定できます。 |
create | 省略可能 | filenameで指定したファイルが存在しない場合に新しいファイルを作成できるかどうかを示すブール値です。新しいファイルを作成する場合はTrue、作成しない場合は Falseを指定します。既定値はFalseです。 |
format | 省略可能 | 開くファイルの形式を示すTristateの3つの値のいずれかです。省略すると、ASCII 形式でファイルが開きます。 |
参考資料
関連記事
Excel VBA テキストファイルを出力する方法 Openステートメント
VBAでテキストファイルを出力する方法 エクセルを使用してテキストファイルを出力してみます。 VBAでテキストファイルを出力する方法は2つこの記事で紹介するOpenステートメントとFileSystemObjectを使用した方法があります。 ...
コメント