【時短術】VBAでテキスト保存を自動化!PrintとWriteの違いを5分で完全攻略

【業務効率化】VBA
スポンサーリンク

「Excelのデータを一つずつメモ帳に貼り付けて保存する作業、もう100回目なんだけど。指がつりそう……」

そんな経験はありませんか?
私も昔システムに取り込むためのテキストファイルを毎日手動で作っていました。

実は、Excel VBAを使えば、そんな「100回のコピペ」を「ボタン一回、わずか3秒」で終わらせることができます。

今回は、初心者の方が最初につまずきやすい「テキストファイルへの書き込み」について、特に混乱しやすいPrintとWriteの違いを中心に解説します。

【業務効率化】VBAの記事を見る

1. テキスト出力の3ステップ

VBAでテキストファイルにデータを書き込みたいときには、必ずセットで使う3つの手順があります。

  1. Open:ファイルという名の「ノート」を開く
  2. Print / Write:中身を「書く」
  3. Close:ノートを「閉じる」

特にCloseを忘れてしまうと、パソコンが「ずっと書き込み中」だと思い込んでしまい、ファイルが削除できなくなるなどのトラブルの原因になります。

2. 似ているようで全然違う!PrintとWriteの比較

ここが今回の一番の重要ポイントになります。書き込みには2つの方法がありますが、その使い道はハッキリと分かれています。

① Print:見たままを書き込む「自由帳」

Printは、私たちが普段メモ帳に文字を入力するのと同じ感覚で使えます。

  • 特徴: 指定した文字をそのまま書き込みます。
  • 用途: 人が見るためのレポート、動作ログ、メールの下書きなど。

② Write:データを守る「整理棚」

Writeは、少しお節介で幾帳面な性格をしています。

  • 特徴: 文字を自動的に「” “(ダブルクォーテーション)」で囲んだり、データの区切りに「,(カンマ)」を挿入したりします。
  • 用途: 別のシステムやExcelで再度読み込ませるための「CSV形式」のようなデータ保存に適しています。

3. コピペで動く!自動化サンプルコード

まずは、一番よく使う「Print」を使ったコードを見てみましょう。
マクロを実行すると、このExcelと同じフォルダに「sample.txt」というファイルが作られて文字が書き込まれます。

Sub SaveAsText()
    ' 変数の宣言
    Dim filePath As String
    Dim fileNumber As Integer
   
    ' 保存する場所を指定(このExcelと同じフォルダに保存します)
    filePath = ThisWorkbook.Path & "\sample.txt"
   
    ' 空いているファイル番号を取得(1番とか2番とか、PCが管理するための番号)
    fileNumber = FreeFile
   
    ' 【手順1】ファイルを開く(Outputは「新しく作る・上書きする」という意味)
    Open filePath For Output As #fileNumber
   
    ' 【手順2】中身を書き込む
    Print #fileNumber, "こんにちは!VBAの世界へようこそ。"
    Print #fileNumber, "1行ずつ自動で書き込めます。"
    Print #fileNumber, 12345 ' 数字もそのまま書けます
   
    ' 【手順3】ファイルを閉じる
    Close #fileNumber
   
    MsgBox "作成完了!"
End Sub

▼sample.txtの記述

こんにちは!VBAの世界へようこそ。
1行ずつ自動で書き込めます。
12345

もし「Write」を使ったらどうなる?

先ほどのコードの「Print」の部分を「Write」に変えるだけで、保存されるテキストの中身は次のように変化します。

"こんにちは!VBAの世界へようこそ。"
"1行ずつ自動で書き込めます。"
12345

このように、文字列の前後に自動で「” “」が付くのがWriteの大きな特徴になります。

実は今回の仕組みを応用すると、VBAのログ(処理履歴)を自動で外部に記録する際にも非常に便利になります。
これまでは「Debug.Print」を使ってVBE(開発画面)上だけで確認していた内容を、テキストファイルとして手元に残し、蓄積していくことができるようになります。

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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