FileSystemObject
FileSystemObjectにてファイルの存在を判定する、FileExistsメソッドについて解説します。If FSO.FileExists(判定したいファイルのパス) Thenが基本形です。返り値もBooleanとわかりやすい仕様ですが、Dir関数と違ってワイルドカードは使えません。
ファイル・フォルダを扱うFileSystemObjectについて、何が便利で、何のために使うオブジェクトなのかを解説します。FSOとはファイル管理の便利ツール集であり、「フォルダやファイルをオブジェクトとして扱うことができる」ことが特長です。
FileSystemObjectにてフォルダの存在を判定する、FolderExistsメソッドについて解説します。If FSO.FolderExists(判定したいフォルダのパス) Thenが基本形です。引数もフォルダパスひとつで、返り値もBooleanと、仕様がわかりやすいメソッドです。
MkDirステートメントやFileSystemObjectのCreateFolderメソッドは、作りたいフォルダの親フォルダがないとエラーになります。この対策は[\]でSplitしてからのForEach文がストレートですが、再帰関数を使用した方法もあるため紹介します。
FileSystemObjectにてフォルダを作成する、CreateFolderメソッドについて解説します。作りたいフォルダのパスを渡すとそのフォルダを作成してるメソッドで、通常実行する分には、MkDirステートメントとエラー含めてほとんど同じ動きをします。
フォルダを作成するときに使用する、MkDirステートメントとFileSystemObject.CreateFolderメソッドの違いを解説します。両者はほとんど同じものと思ってOKで、引数、省略時のカレントフォルダ指定、エラーの発生条件も全く同じ仕様です。
知らずに落ちると抜け出せなくなるVBAの落とし穴です。Dir関数が途中で止まる、逆に無限ループする、「プロシージャの呼び出し、または引数が不正です。」エラーを出す、あたりにお悩みの方は、この落とし穴に落ちていないかご確認ください。