前回の予告通り、FileSystemObjectを使います。Dir関数では限界があります、というか、かえって面倒です。次回以降の再帰処理もしやすくなります。前回までのプログラム。Subこれを、FileSystemObjectを使って書き直します。Runtime」にチェックを付けて下さい。2)FileSystemObjectでは、最後の"\"はどちらでも良いので、セルの値をそのまま入れています。FileSystemObjectインスタンスを生成します。えっと、インスタンスって何?ってなりますよね、当然です。しましょうか・・・説明が・・・大変・・・うまく説明出来ない・・・この下で、インスタンスについて説明します。objFSO.FolderExists(strDir)フォルダーの存在確認です。存在している場合に、Trueが返ります。objFSO.GetFolder(strDir)指定したフォルダを表すFolderオブジェクトを取得しています。これも解りづらいですよね。strDirはフルパスの文字列です。このフルパスが示す、実際のフォルダをオブジェクトとして取得しています。objFolder.SubFoldersフォルダオブジェクトのobjFolderに含まれる、サブフォルダを順に取り出します。objFolderSub.Nameフォルダオブジェクトの名前を取得します。フルパスではありません、フォルダ名です。objFolder.FilesフォルダオブジェクトのobjFolderに含まれる、ファイルを順に取り出します。Nothingオブシェクトの解放をしています。このオブジェクトの場合は、解放しなくても問題が発生することは無いと思いますが、オブジェクトによっては、解放しないと誤作動を起こします。オブジェクトを使ったら、解放する癖をつけましょう。インスタンスについてIT用語辞典には、クラスを基にした実際の値としてのデータのこと。クラスと対比して用いられることが多く、クラスを「型」、インスタンスを「実体」として説明されることもある。これ読んで解る人には、最初から説明が不要ですよね。FileSystemObjectはクラスです。FileSystemObjectは、FileSystemObjectクラス型を指定しているだけです。FileSystemObjectこれで、実体をもつオブジェクトが生成されます。家ですよ、と宣言しただけです。家これで新築の家が建つのです。(ただし、飾りっけの無いただの家です)そして、objHouseのプロパティやメソッドで、家の間取りや装飾を指定して、独特な家を完成させます。家はいくらでも建てる事が出来ます。変数を増やして、Newで、どんどん家が建ちます。FileSystemObjectこれを実行すれば、元の新築に戻ります。Nothingこれで、家は取り壊しとなります。うーん、これで理解できますでしょうか・・・クラスやオブジェクトといっても、WorksheetやRangeは、インスタンスの生成は出来ません。それは、クラスの構造が違うのです、Newをサポートしていないのです。言って、インスタンスを理解する必要はないでしょう。(本職の方は別ですよ)オブジェクトには、インスタンスの生成が必要なオブシェクトがあるとだけ覚えて下さい。次回は、サブフォルダ以下を取得します。再帰処理です・・・これも、どうかな、どうやって説明するかが問題です。Next)|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作ホームマクロVBAマクロVBAサンプル集ファイル一覧を作成エクセルでファイル一覧を作成.No6(FileSystemObject1)このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用ホームマクロVBAマクロVBAサンプル集ファイル一覧を作成エクセルでファイル一覧を作成.No6このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。