INDEX
ChDirの概要
作業ディレクトリを変更する VBAの予約語 | ||
ChDir 概要 ChDir ステートメントは、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
を併用する必要がある。