カレントフォルダを移動する
ローカルの作業フォルダーを変更します。フォルダー自体やファイルの中身は移動しません。
実行前に確認
- Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
- UNC形式の\\server\shareはこの例へそのまま指定しません。Excelの相対パスの基準が変わるので、他のマクロも含めファイル操作は絶対パスで書くと安全です。
1サンプルコード
Sub Example4028()
On Error GoTo Failed
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim folderPath As String
folderPath = "C:\Data"
If Not fso.FolderExists(folderPath) Then Err.Raise 76, , "フォルダーへアクセスできません"
ChDrive Left$(folderPath, 1)
ChDir folderPath
MsgBox "現在の作業フォルダー: " & CurDir$
Exit Sub
Failed:
MsgBox "処理を中止しました: " & Err.Description
End Sub図で見る操作の流れ
イメージ図コードの動きを表した概念図です。実際のExcel画面ではありません。
変更前:現在の作業フォルダー
相対パスの基準は現在の設定先
マクロ:存在を確認
C:\Data にアクセスできるか調べる
マクロ:基準を変更
ChDriveでCドライブ、ChDirでC:\Dataに切り替える
結果:変更先を表示
「現在の作業フォルダー: C:\Data」と表示する
ファイルやフォルダーは移動しません。UNCパスはこの例の対象外です。以後の相対パスに影響し、失敗時は中止メッセージを表示します。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する5つの手順で、コードの使い方を確認できます
- 1
Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 2
C:\Dataなどの練習用フォルダーを先に作ります。
- 3
folderPathをドライブ文字から始まる存在するフォルダーへ変更します。
- 4
実行するSubの内側にカーソルを置き、F5キーを押します。
- 5
ChDriveとChDirにより作業フォルダーが変わり、変更後のパスが表示されます。フォルダーやファイル自体は移動しません。