
ExcelVBA ファイル操作を行う際の基準となるフォルダ。現在のディレクトリはChDir や CurDir を使うことで、取得・変更できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA 現在ディレクトリ取得方法|シーン
以下のシーンで利用します。
1.ファイルを開く・保存する際に、デフォルトのフォルダを設定する。
2.ユーザーが選択したフォルダを作業ディレクトリとして指定する。
3.一時的にディレクトリを変更し、処理後に元に戻す。
Excel VBA 現在ディレクトリ取得方法|サンプルコード
Option Explicit
Sub GetCurrentDirectory() '標準モジュール
MsgBox "現在のディレクトリ: " & CurDir
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
現在のディレクトリを変更する (ChDir 文)
Option Explicit
Sub ChangeCurrentDirectory() '標準モジュール
ChDir "C:\Users\Public\Documents"
MsgBox "現在のディレクトリ: " & CurDir
End Sub
※ChDir はフォルダの変更のみ可能で、ドライブを変更する場合は ChDrive を併用する必要があります。
ドライブを変更する (ChDrive 文)
Option Explicit
Sub ChangeDriveAndDirectory() '標準モジュール
ChDrive "C" ' Cドライブに変更
ChDir "C:\Users"
MsgBox "現在のディレクトリ: " & CurDir
End Sub
一時的にディレクトリを変更し、元に戻す
Option Explicit
Sub TemporaryChangeDirectory() '標準モジュール
Dim originalDir As String
originalDir = CurDir ' 現在のディレクトリを保存
ChDir "C:\Users" ' 一時的に変更
MsgBox "変更後のディレクトリ: " & CurDir
ChDir originalDir ' 元に戻す
MsgBox "元のディレクトリに戻しました: " & CurDir
End Sub
・ChDir はドライブをまたいでの変更はできない(ChDrive が必要)
・CurDir で取得したパスが C:\ の場合、ユーザー権限で実行するとアクセス制限があることがある
ThisWorkbook.Path を使えば、現在のブックがあるフォルダを取得できる(CurDir とは異なる)
Option Explicit
Sub ShowWorkbookPath() '標準モジュール
MsgBox "このブックのフォルダ: " & ThisWorkbook.Path
End Sub
Excel VBA 現在ディレクトリ取得方法|まとめ
・CurDir で現在のディレクトリを取得
・ChDir でフォルダを変更(ドライブ変更は ChDrive も必要)
・ThisWorkbook.Path はブックのあるフォルダを取得するのに便利
・一時変更時は元に戻す処理を入れると安全
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。