Excel VBA テキストファイルを出力する方法 FileSystemObject

スポンサーリンク
スポンサーリンク

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 形式でファイルが開きます。

参考資料

Docs

関連記事

Excel VBA テキストファイルを出力する方法 Openステートメント
VBAでテキストファイルを出力する方法 エクセルを使用してテキストファイルを出力してみます。 VBAでテキストファイルを出力する方法は2つこの記事で紹介するOpenステートメントとFileSystemObjectを使用した方法があります。 ...

コメント

タイトルとURLをコピーしました