ExcelVBA ファイル操作の基準となるフォルダ現在ディレクトリ取得方法

 

ExcelVBA  ファイル操作を行う際の基準となるフォルダ。現在のディレクトリはChDir や CurDir を使うことで、取得・変更できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

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

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

 

Excel VBA  現在ディレクトリ取得方法|シーン

以下のシーンで利用します。

1.ファイルを開く・保存する際に、デフォルトのフォルダを設定する。

2.ユーザーが選択したフォルダを作業ディレクトリとして指定する。

3.一時的にディレクトリを変更し、処理後に元に戻す。

 

Excel VBA   現在ディレクトリ取得方法|サンプルコード

現在のディレクトリを取得する (CurDir 関数)

Option Explicit

Sub GetCurrentDirectory() '標準モジュール
    MsgBox "現在のディレクトリ: " & CurDir
End Sub

 

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

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

 

現在のディレクトリを変更する (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エキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

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