VBAのChDirで現在の作業ディレクトリを変更する方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

ChDirの概要

作業ディレクトリを変更する VBAの予約語

ChDir

概要 ChDir ステートメントは、VBAで現在の作業ディレクトリ(カレントディレクトリ)を変更するために使用されます。ファイルを開く・保存する際に、指定したフォルダを基準にする場合に便利です。

わかりやすく説明 ファイルを操作するときに、基準となるフォルダを変更する命令。

  • 現在の作業フォルダを変更する。
  • ファイルの読み書きを特定のフォルダに限定する際に便利。
  • Excel VBAでファイル操作の基準ディレクトリを指定する場合に使用される。

ChDirの基本的な使い方

以下の例では、作業ディレクトリを変更します。

Sub ChangeDirectory()
    ChDir "C:\Users\Public\Documents"
    MsgBox "作業ディレクトリを変更しました"
End Sub

解説:

  • ChDir "C:\Users\Public\Documents": 作業ディレクトリを指定のフォルダに変更。
  • その後に開く・保存するファイルは、このフォルダを基準に処理される。

現在の作業ディレクトリを取得する

現在の作業ディレクトリを確認したい場合は、CurDir 関数を使用します。

Sub ShowCurrentDirectory()
    MsgBox "現在の作業ディレクトリ: " & CurDir
End Sub

解説:

  • CurDir 関数を使うと、現在の作業フォルダを取得できる。
  • ファイル操作を行う前に、現在の作業フォルダを確認するのに役立つ。

Excel VBAでのChDirの活用

Excel VBAでファイルを開く前に、作業ディレクトリを変更すると便利です。

Sub OpenFileInDirectory()
    Dim filePath As String
    ChDir "C:\Users\Public\Documents"
    
    filePath = "sample.xlsx"
    Workbooks.Open filePath
End Sub

解説:

  • 作業ディレクトリを C:\Users\Public\Documents に変更。
  • Workbooks.Open filePath で、フォルダを省略しても sample.xlsx を開ける。

ドライブを変更する場合

ChDir はフォルダの変更のみ可能で、ドライブを変更するには ChDrive を使います。

Sub ChangeDriveAndDirectory()
    ChDrive "D" ' ドライブを変更
    ChDir "D:\Projects" ' フォルダを変更
    MsgBox "D:\Projects に移動しました"
End Sub

解説:

  • ChDrive "D": 作業ドライブをDドライブに変更。
  • ChDir "D:\Projects": Dドライブ内のフォルダを変更。

ChDirを使ったファイル保存の自動化

ChDir を利用すると、Excelのファイル保存を指定フォルダに統一できます。

Sub SaveWorkbookInSpecificFolder()
    ChDir "C:\Users\Public\Documents"
    ActiveWorkbook.SaveAs Filename:="Report.xlsx"
    MsgBox "ファイルを指定フォルダに保存しました"
End Sub

解説:

  • 作業ディレクトリを変更し、SaveAs でそのフォルダに保存。
  • 毎回フルパスを指定しなくても、特定のフォルダに統一して保存できる。

注意点

  • 存在しないフォルダを指定するとエラー: 指定するフォルダは事前に作成されている必要がある。
  • 作業ディレクトリの変更は一時的: Excelを閉じると元の作業ディレクトリに戻る。
  • ドライブ変更にはChDriveを併用: ChDir はドライブ変更できないため、必要なら ChDrive を先に実行する。

よくある質問

Q: ChDir を使うと何が変わりますか?
A: 作業ディレクトリを変更でき、ファイルの読み書きをそのフォルダに統一できます。
Q: ChDir は Excel を閉じた後も影響しますか?
A: いいえ、Excelを閉じると、作業ディレクトリは元に戻ります。
Q: ChDir を使わずに特定のフォルダのファイルを開く方法は?
A: Workbooks.Open "C:\Users\Public\Documents\sample.xlsx" のように、フルパスを指定すればChDirを使わなくても開けます。

まとめ

  • ChDir は現在の作業ディレクトリ(フォルダ)を変更する。
  • Excel VBAでファイルを開く・保存する際に、特定のフォルダを基準にするのに便利。
  • 現在の作業ディレクトリを取得するには CurDir を使う。
  • ドライブを変更する場合は ChDrive を併用する必要がある。