← コード一覧へ戻る
実務テキストファイル

テキストファイルに書き込む

テキストファイルを作成し、1行を書き込みます。既存ファイルなら全内容を置き換えます。

実行前に確認

  • Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
  • For Outputで開いた時点で既存の内容が消えます。必ずバックアップし、失ってよいファイルで試してください。
  • Windowsの既定文字コードを使う例で、UTF-8指定はできません。別の文字コードのファイルへ追記しないでください。

1サンプルコード

Sub Example4020()
    Dim filePath As String, fileNumber As Integer, opened As Boolean, message As String
    filePath = "C:\Data\sample.txt"
    If MsgBox(filePath & vbCrLf & "既存の内容を消して書き込みます。続けますか?", _
        vbYesNo + vbExclamation + vbDefaultButton2) <> vbYes Then Exit Sub
    On Error GoTo Failed
    fileNumber = FreeFile
    Open filePath For Output As #fileNumber
    opened = True
    Print #fileNumber, "新しい内容"
    Close #fileNumber
    opened = False
    MsgBox "書き込みました: " & filePath
    Exit Sub
Failed:
    message = Err.Description
    On Error Resume Next
    If opened Then Close #fileNumber
    On Error GoTo 0
    MsgBox message
End Sub

図で見るファイルの変化

イメージ図

概念図:既存内容を残さず、指定の1行で置き換えます。

  1. 変更前

    C:\Data\sample.txt 既存ファイルなら元の内容あり

  2. 手動:承認

    バックアップ後、上書き確認で[はい]

  3. マクロ:書き込み

    For Outputで開いて旧内容を消し、Print #で書く

  4. 変更後

    C:\Data\sample.txt 新しい内容 (末尾に改行)

[いいえ]なら変更なし。ファイル未作成なら新規作成します。開いた時点で旧内容は消え、エラーでも元へ戻りません。UTF-8指定ではありません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する5つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    C:\Dataなどの保存先フォルダーを用意し、filePathを練習用ファイルのパスへ変更します。既存ファイルは先にバックアップします。

  3. 3

    Print #の「新しい内容」を保存したい文字へ変更します。

  4. 4

    実行するSubの内側にカーソルを置き、F5キーを押します。 確認画面で対象と処理内容を読み、続けてよい場合だけ[はい]を押します。

  5. 5

    指定した文字と改行が保存されます。既存のファイル内容はすべて置き換わります。 メモ帳でファイルを開き、結果を確認します。

使っている機能の公式ドキュメント(Microsoft Learn)