Excel VBA Printステートメントでファイルにデータを書き込む方法

 

Excel VBA  Printステートメントは、ファイルにデータを書き込むために使用します。テキストファイルにデータを保存したり、ログを記録したりする場合に便利です。具体的な使い方や、注意点やサンプルコードを紹介します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA Printステートメントを利用

以下のようなシーンで利用されます。

・テキストファイルにデータを書き込む

・デバッグのためにログファイルを作成する

・プログラムの実行結果をファイルに保存する

 

Excel VBA Printステートメント使い方とポイント

使い方

Printステートメントは、まずファイルを開き、その後に書き込みを行い、最後にファイルを閉じます。Openステートメントを使用してファイルを開き、Printステートメントでデータを書き込み、Closeステートメントでファイルを閉じます。

 

ポイント

・ファイルパスが正しいことを確認する。

・ファイルが存在しない場合は、新しく作成されますが、存在する場合は上書きされる。

・Openステートメントでファイルのモードを指定すること。一般的にはOutputモードを使用しますが、他のモードもあります(例:Append、Input)

・ファイル操作後は必ず`Close`ステートメントでファイルを閉じる。

 

Excel VBA Printステートメントのサンプルコード

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

Option Explicit

Sub WriteToFile()
    Dim filePath As String
    Dim fileNumber As Integer
    
    ' 書き込みたいファイルのパスを指定
    filePath = "C:\Users\User\Desktop\DataCsv\output.txt"
    
    ' ファイル番号を取得
    fileNumber = FreeFile
    
    ' ファイルを開く(存在しない場合は新規作成)
    Open filePath For Output As #fileNumber
    
    ' ファイルにデータを書き込む
    Print #fileNumber, "Hello, World!"
    Print #fileNumber, "This is a test."
    
    ' ファイルを閉じる
    Close #fileNumber
    
    ' 完了メッセージ
    MsgBox "ファイルに書き込みました。"
End Sub
解説

1.ファイルパスの指定
filePath変数に、書き込みたいファイルのパスを指定します。

2.ファイル番号の取得
FreeFile関数を使用して、使用可能なファイル番号を取得します。fileNumberにその番号を代入します。

3.ファイルのオープン
Openステートメントを使用して、指定したファイルパスでファイルを開きます。For Outputはファイルを出力モードで開くことを指定します。#fileNumberはファイル番号です。

4.データの書き込み
Printステートメントを使用して、ファイルにデータを書き込みます。#fileNumberでファイル番号を指定し、その後に書き込むデータを続けます。

5.ファイルのクローズ
Closeステートメントを使用して、開いたファイルを閉じます。#fileNumberでファイル番号を指定します。

6. 完了メッセージ
MsgBox関数で、書き込みが完了したことをユーザーに知らせます。

基本的な例を元に、より複雑なデータを書き込んだり、異なるモードでファイルを操作する方法を学んでいくことができます。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問