VBAでファイルを扱う際、現在の作業フォルダ、すなわち**「カレントフォルダ」**を基準に操作したい場合があります。例えば、パスを指定せずにファイル名だけで保存した場合、そのファイルはカレントフォルダに保存されます。
VBAには、このカレントフォルダを取得するためのCurDirという関数が用意されています。しかし、この関数の挙動には注意が必要で、多くの場合、より安全な代替手段が存在します。
この記事では、CurDir関数の使い方と、実務で使う際に必ず知っておくべき注意点を解説します。
完成したVBAコードと、その動作
以下のコードは、現在のカレントフォルダを表示し、その後、パスを指定せずに新しいブックを保存するものです。
Sub CheckCurrentDirectory()
' 変数を宣言します
Dim currentFolderPath As String
Dim newBook As Workbook
' --- 1. 現在のカレントフォルダを取得して表示 ---
currentFolderPath = CurDir
MsgBox "現在のカレントフォルダは以下です:" & vbCrLf & currentFolderPath
' --- 2. パスを指定せずにブックを保存 ---
' 新しいブックを追加
Set newBook = Workbooks.Add
' ファイル名だけで保存すると、カレントフォルダに保存される
newBook.SaveAs "NewFile_In_CurDir.xlsx"
' --- 3. 保存したブックを閉じる ---
newBook.Close
MsgBox "「" & currentFolderPath & "」に" & vbCrLf & _
"「NewFile_In_CurDir.xlsx」を保存しました。"
End Sub
このマクロを実行すると、まずメッセージボックスにカレントフォルダが表示されます。そして、そのフォルダ内にNewFile_In_CurDir.xlsxという名前の新しいExcelファイルが作成されているはずです。
【最重要】 CurDir と ThisWorkbook.Path の決定的な違い
CurDirを使う上で最も重要な注意点は、その指し示すフォルダが、必ずしもマクロが書かれているブックのフォルダと一致するとは限らないという点です。
| プロパティ/関数 | 示す場所 | 信頼性 | 主な用途 |
CurDir | Excelアプリケーションの現在の作業フォルダ | 低い(変わりやすい) | 特殊なケースのみ。通常は非推奨。 |
ThisWorkbook.Path | マクロが書かれているブックの保存フォルダ | 高い(不変) | ファイル入出力の基準パスとして強く推奨。 |
CurDirが指すフォルダは、以下のような操作で簡単に変わってしまいます。
- ユーザーが「ファイルを開く」や「名前を付けて保存」ダイアログで別のフォルダに移動した。
- VBAの
ChDirステートメントで変更された。
そのため、マクロの実行タイミングによってCurDirがどこを指しているか分からなくなり、意図しない場所にファイルが保存されたり、「ファイルが見つからない」というエラーの原因になったりします。
まとめ
- **
CurDir**は、Excelの現在の作業フォルダを取得する関数です。 - パスを指定せずに**
SaveAs "ファイル名"**を実行すると、CurDirが指すフォルダに保存されます。 CurDirはユーザーの操作などで簡単に変化するため、信頼性が低いです。
結論として、マクロブックと同じフォルダを基準にファイルを操作したい場合は、CurDirを使うのではなく、常にThisWorkbook.Pathを使いましょう。
myPath = ThisWorkbook.Path & "\NewFile.xlsx"
この書き方を徹底することで、マクロの実行環境に左右されない、安定したファイル操作が可能になります。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
