current directory
📌 VBA でカレントディレクトリにファイルを書き込む方法
VBA で カレントディレクトリ に ファイルを作成・書き込む 方法を紹介します。
目次
✅ カレントディレクトリの取得
VBA では CurDir 関数を使うと、現在の作業ディレクトリ(カレントディレクトリ) を取得できます。
Dim currentDir As String currentDir = CurDir ' カレントディレクトリを取得 MsgBox "現在のディレクトリ: " & currentDir
📌 方法 1: Print ステートメントで書き込む
💡 簡単なテキストデータを書き込む場合
Sub WriteToFile()
Dim filePath As String
Dim fileNumber As Integer
' カレントディレクトリにファイルを作成
filePath = CurDir & "\output.txt"
' 使用可能なファイル番号を取得
fileNumber = FreeFile
' ファイルを開く (出力モード)
Open filePath For Output As #fileNumber
' ファイルに書き込む
Print #fileNumber, "これはテスト用のデータです。"
Print #fileNumber, "VBA でファイルを書き込みました。"
' ファイルを閉じる
Close #fileNumber
' 完了メッセージ
MsgBox "ファイルを書き込みました: " & filePath
End Sub
✅ ポイント
CurDirを使って カレントディレクトリにファイルを作成FreeFileで 使用可能なファイル番号を取得Printステートメントで 改行付きのデータを書き込みCloseステートメントでファイルを閉じる(忘れるとエラーになる)
📌 方法 2: Write ステートメントで書き込む
Write ステートメント を使うと、データが 自動的に「””(ダブルクォーテーション)」で囲まれ、カンマで区切られます。
Sub WriteToFileWithWrite()
Dim filePath As String
Dim fileNumber As Integer
filePath = CurDir & "\output_write.txt"
fileNumber = FreeFile
Open filePath For Output As #fileNumber
' Write ステートメントを使う(自動で""で囲まれる)
Write #fileNumber, "VBAファイル出力", 123, True
Close #fileNumber
MsgBox "Write ステートメントでファイルを作成しました。"
End Sub
✅ Print と Write の違い
| ステートメント | 出力内容 |
|---|---|
| VBAファイル出力 123 True | |
| Write | “VBAファイル出力”,123,True |
💡 Write はデータをカンマで区切るため、CSV の出力に適している。
📌 方法 3: 既存のファイルに追記
ファイルを開くときに Append を指定すると、既存のファイルに追記 できます。
Sub AppendToFile()
Dim filePath As String
Dim fileNumber As Integer
filePath = CurDir & "\output.txt"
fileNumber = FreeFile
' 既存のファイルに追記 (Append モード)
Open filePath For Append As #fileNumber
' 追記内容
Print #fileNumber, "追加のデータを書き込みました。"
Close #fileNumber
MsgBox "ファイルにデータを追記しました。"
End Sub
✅ Append のポイント
- 既存のファイルに新しいデータを追加
Printで 改行しながら追記
📌 まとめ
| 方法 | 使い方 |
|---|---|
| シンプルなテキストの書き込み | |
| Write | CSV形式(カンマ区切り)で書き込み |
| Append | 既存のファイルにデータを追加 |
💡 応用例
- CSV ファイルを出力
- エラーログを書き込む
- 設定ファイルを作成する
📢 「特定のデータを書き込みたい」「Excelのデータをファイルに保存したい」などの要望があれば教えてください! 🚀