Excel VBAでテキストファイルの新規作成~開く閉じる~書き込み~読み込み

FSO(FileSystemObject)を使用し、テキストファイルの一連の操作を行います。新規作成はCreateTextFile、開くはOpenTextFile、閉じるはClose、書き込みはWrite・WriteLine、読み込みはReadLineを使用します。

参照設定の方法は「FileSystemObjectの参照設定方法とファイル一覧を取得するVBA」を掲載していまので参考にしてください。


Excel Tipsメニューに戻る

スポンサーリンク





テキストファイルの新規作成

シートに新規作成のコマンドボタンを作成します。
シートに新規作成のコマンドボタンを作成

クリックイベントにテキストファイルを新規作成するVBAを入力します。
テキストファイルを新規作成するVBA

・FileSystemObjectオブジェクトと、テキストファイルの操作を行うTextStreamオブジェクトを使用します。
・新規作成はCreateTextFileメソッドを使用します。
構文:CreateTextFile(ファイル名,上書きのブール値)
上書きする場合はTRUE、しない場合はFALSEを指定します。

Private Sub CommandButton1_Click()
    Dim tFso As FileSystemObject
    Dim tFile As TextStream
     
    Set tFso = New FileSystemObject
    Set tFile = tFso.CreateTextFile("C:\Test2\メモ.txt", True)

    Set tFile = Nothing
    Set tFso = Nothing
End Sub

作成したフォルダを見ると、サイズ0のテキストファイルが作成されています。
サイズ0のテキストファイルが作成されている

スポンサーリンク


テキストファイルを開く~書き込み~閉じる

テキストファイルに文字列を書き込むVBAです。
テキストファイルに文字列を書き込むVBA

・文字列を書き込むにはWriteメソッドを使用します。
・文字列+改行を書き込むにはWriteLineメソッドを使用します。

Private Sub CommandButton2_Click()
    Dim tFso As FileSystemObject
    Dim tFile As TextStream
     
    Set tFso = New FileSystemObject
    Set tFile = tFso.OpenTextFile("C:\Test2\メモ.txt", ForWriting)

    tFile.Write ("あいうえお")
    tFile.Write ("かきくけこ")
    tFile.WriteLine ("さしすせそ")
    tFile.WriteLine ("たちつてと")
    
    tFile.Close
End Sub

書き込みを行ったテキストです。
Writeで行った「かきくけこ」の次までが改行されていません、WriteLineで行った「さしすせそ」から改行されています。
書き込みを行ったテキスト

テキストファイルを開く~読み込み~閉じる

テキストファイルを読み込むVBAです。
テキストファイルを読み込むVBA

・テキストファイルから読み込むには、指定された文字列を読み込むReadメソッドと、行単位で読み込むReadLineがあります。ここではReadLineを使用します。
・Do While Loopを使用し、ループしながら1行づつ読み込みます。
・ファイルの末尾を読み込もうとするとエラーになるので、AtEndOfStreamプロパティでEOF(End Of File)を調べます。
・ReadLineで読み込んだ結果は、セルに表示します。

Private Sub CommandButton3_Click()
    Dim tFso As FileSystemObject
    Dim tFile As TextStream
    Dim lr As Long
    
    Set tFso = New FileSystemObject
    Set tFile = tFso.OpenTextFile("C:\Test2\メモ.txt", ForReading)

    lr = 8
    Do While tFile.AtEndOfStream <> True
        Cells(lr, 4) = tFile.ReadLine
        lr = lr + 1
    Loop
    
    Set tFile = Nothing
    Set tFso = Nothing
End Sub

実行結果です。
1行読み込みD8セルに表示し、改行されD9セルに表示されています。
1行読み込みD8セルに表示し、改行されD9セルに表示

スポンサーリンク






Excel Tipsメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved