【Excel VBA】ファイルに1行ずつ文字列を出力する方法

目次

ファイルに1行ずつ文字列を出力するマクロテンプレート

上書き型出力の場合

Sub sample()
    Dim outputFile As String
    outputFile = "<出力先ファイルパス>"

    Open outputFile For Output As #1
    
    Print #1, "<出力文字列>"
    
    Close #1
End Sub

追記型出力の場合

Sub sample()
    Dim outputFile As String
    outputFile = "<出力先ファイルパス>"

    Open outputFile For Append As #1
    
    Print #1, "<出力文字列>"
    
    Close #1
End Sub

以下で詳しく解説します。

ファイルに1行ずつ文字列を出力するための手順

テキストファイルに1行ずつ文字列を出力するためには以下の手順を実施します。

  1. 出力対象のテキストファイルを開く
  2. 1行ずつ文字列を対象ファイルに出力する
  3. 出力対象のテキストファイルを閉じる

①③出力対象のファイルを開く/閉じる

出力対象のファイルを開く

出力対象のファイルを開くためには以下のように記述します。

Sub sample()
    Dim outputFile As String
    outputFile = "<出力先ファイルパス>"

    Open outputFile For <Output または Append> As #1
End Sub
出力ファイルを開く構文
  • Open <出力ファイルパス> For <Output または Append> As #<ID番号>

2つの出力形式

出力対象のファイルが存在しなかった場合、新規にファイルが作成された上でテキストが出力されます。一方で、出力対象のファイルが存在する場合、出力形式として2種類の方法があります。

2種類の出力形式と、その形式でファイルを開くための構文は以下です。

2種類の出力形式
  1. ファイルを上書きする(ファイルの元の内容は消える)
    • Open <出力ファイルパス> For Output As #<ID番号>
  2. ファイルに追記する(ファイルの元の内容は残る)
    • Open <出力ファイルパス> For Append As #<ID番号>

出力対象のファイルを閉じる

テキストの出力を終えたら対象ファイルを閉じます。

    Close #1
出力ファイルを閉じる構文
  • Close #<ID番号>
    • <ID番号> はファイルを開く構文で指定した ID と一致させる

②1行ずつ文字列を対象ファイルに出力する

対象ファイルを開いている状態で1行ずつ文字列をファイルに出力します。

Sub sample()
    Dim outputFile As String
    outputFile = "C:\Users\share\Desktop\folder\test.txt"

    Open outputFile For Output As #1
    
    Print #1, "hogepiyofuga"
    
    Close #1
End Sub

以下が文字列を1行ファイルに出力する文です。

    Print #1, "hogepiyofuga"
ファイルに1行出力する構文
  • Print #<ID番号>, <出力する文字列>
    • <ID番号> はファイルを開く構文で指定した ID と一致させる

複数行出力したい場合は上記 Print 文を複数記述します。

Sub sample()
    Dim outputFile As String
    outputFile = "C:\Users\share\Desktop\folder\test.txt"

    Open outputFile For Output As #1
    
    Print #1, "hogepiyofuga 1行目"
    Print #1, "hogepiyofuga 2行目"
    Print #1, "hogepiyofuga 3行目"
    
    Close #1
End Sub

上記マクロを実行すると、出力ファイルの内容は以下のようになります。

hogepiyofuga 1行目
hogepiyofuga 2行目
hogepiyofuga 3行目

なお、Print 文の出力文字列部分を変数に置き換えても問題ありません。

Sub sample()
    Dim outputFile As String
    Dim mojiretsu As String
    outputFile = "C:\Users\share\Desktop\folder\test.txt"

    Open outputFile For Output As #1
    
    mojiretsu = "hogepiyofuga"
    Print #1, mojiretsu
    
    Close #1
End Sub

あわせて読みたい
【Excel VBA】テキストファイルの内容を一行ずつ読み込むマクロ 【テキストファイルの内容を1行ずつ読み込むマクロテンプレート】 Sub sample() Dim inputFile As String Dim readLine As String inputFile = "<ファイルパス>" ...
あわせて読みたい
【Excel VBA】テキストファイルの内容を変数に読み込むマクロ(全文一括) 【テキストファイルの内容を変数に読み込む】 ここではテキストファイルを開きその内容全文を一つの変数に格納する方法について記載します。 【テキストファイルの内容...
あわせて読みたい
Excel VBA マクロ作成用情報まとめ 【初学者向け情報】 【Excel VBA】初心者からマクロを作成できるようになるまでの学習ロードマップ 【Excel VBA マクロ独学者・初心者向け】VBA 学習の第一歩【このペー...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

とあるエンジニアです。

当ブログでは Excel VBA のマクロ作成に役立つ情報を中心に情報展開しています。

Excel VBA マクロを使いこなして時短し、人生の質『QOL』を高めていきましょう。

プロフ画像:Copyright (C) SQUARE ENIX CO., LTD. All Rights Reserved.

目次