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のデータをファイルに保存したい」などの要望があれば教えてください! 🚀