ChDriveステートメント

ChDriveステートメントはカレントドライブの変更を行います。存在しないドライブを指定するとエラーになります。

残念ながら、ネットワークドライブへの変更はできません。

ネットワークドライブへ変更したい場合は「VBAでネットワークドライブにカレントを変更する」をご参照ください。

ChDirステートメント

ChDirステートメントはカレントフォルダの変更を行います。

カレントフォルダとは現在作業中のフォルダを指し、ダイアログボックスの初期表示フォルダになります。

存在しないフォルダをカレントフォルダに変更しようとした場合はエラーになります。エラーを回避したい場合は事前にフォルダが存在するかチェックを行ってください。VBAでフォルダ存在チェック」にてフォルダ存在チェックを紹介しています。

カレントドライブとは異なるドライブのフォルダへの変更を行う場合は、先にChDriveステートメントでカレントドライブを変更しておく必要があります。

構文

ChDriveの構文

ChDrive Drive

Drive
変更後のドライブ名を指定します。2文字以上が指定された場合は先頭の1文字をドライブ名として判定して処理されます。

ChDirの構文

ChDir Path

Path
変更後のカレントフォルダのパスを指定します。ドライブ名を省略した場合はカレントドライブの中にある指定したパスが対象になります。フォルダ名のみを指定した場合はカレントフォルダ内にあるフォルダが対象になります。

ChDriveとChDirは一緒に使った方がよい

ChDriveステートメントとChDirステートメントは一緒にセットとして使うようにした方がよいです。

理由は2つあります。

1つは、ChDirステートメントがドライブの変更が出来ないこと、もう1つがChDriveステートメントの引数にフォルダパスを渡してもエラーにならずにドライブ部分のみを解釈して処理してくれることです。

この特性から、ChDriveステートメントとChDirステートメントはセットにしておいた方が使い勝手がよいでしょう。

カレントドライブとフォルダの変更を行う関数

カレントドライブとフォルダの変更を何度も行う場合は、以下のように関数化しておいてもよいです。

単にChDriveステートメントとChDirステートメントを並べているだけですが、ドライブが変わったことを意識しなくてよい利点があります。

サンプルコード

開いているブックがあるフォルダをカレントフォルダとして設定後に、フォルダ選択ダイアログを表示するサンプルです。

ブックがあるフォルダはActiveWorkbook.Pathで取得します。ここをChDriveステートメントとChDirステートメントでカレントフォルダとしています。