
ExcelVBA ファイル操作を行う際の基準となるフォルダ。現在のディレクトリはChDir や CurDir を使うことで、取得・変更できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
Excel VBA 現在ディレクトリ取得方法|シーン
以下のシーンで利用します。
1.ファイルを開く・保存する際に、デフォルトのフォルダを設定する。
2.ユーザーが選択したフォルダを作業ディレクトリとして指定する。
3.一時的にディレクトリを変更し、処理後に元に戻す。
Excel VBA 現在ディレクトリ取得方法|サンプルコード
Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
Option Explicit
Sub GetCurrentDirectory() '標準モジュール
MsgBox "現在のディレクトリ: " & CurDir
End Sub
現在のディレクトリを変更する (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で自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。