サブフォルダ以下も全て取得し、一覧表示します、前回のプログラムでは、フォルダが無い場合のチェックや、最後に"\"を付けておく必要がありました。これらを、プログラムに組み込みます。Ifこれをモジュールの先頭に入れます。数値)文字列の右から、指定数値の文字数を取り出します。最後が"\"でなければ、"\"を付加しています。vbDirectory)これが空白の場合は、フォルダが存在しないので、メッセージを出して、終了します。次は、ボタンでフォルダ選択のダイアログを出すようにします。上の、「フォルダ」のボタンです。自動的に作成されたはずです。この、Subモジュールが、ボタンがクリックされた時に起動されるモジュールです。この中に、処理を記述します。SubApplication.FileDialog(msoFileDialogFolderPicker)はフォルダ選択のダイアログを表示します。このようなダイアログです。.Showで実際に表示されます。キャンセルされた場合は、Falseが返されますので、Trueの判定をしています。.SelectedItems(1)に選択されたフォルダのフルパスが入っていますので、これをセルに入れています。続いて、「実行」ボタンも作成します。作成方法は、「フォルダ」ボタンと同様です。「オブジェクト名」を、「btn実行」にして下さい。Sub以上で、ボタンの追加が完了です。「フォルダ」ボタンでフォルダを指定し、「実行」ボタンで、ファイルの一覧が表示されます。フォルダ選択のダイアログ上記の方法以外にも、Shellを使う方法や、APIを使う方法もありますが、ダイアログの形式が違います。特別な理由がなければ、上記の標準のダイアログで良いはずです。Application.FileDialog(msoFileDialogFolderPicker)の引数により、ダイアログの種類が変わります。msoFileDialogFilePicker:ユーザーがファイルを選択できます。msoFileDialogFolderPicker:ユーザーがフォルダを選択できます。msoFileDialogOpen:ユーザーがファイルを開くことができます。msoFileDialogSaveAs:ユーザーがファイルを保存できます。エクセルには非常に多くのダイアログがあります。上記と同じ、「ファイルを開く」や「ファイルを保存」でも、GetOpenFilename、GetSaveAsFilenameもあります。それぞれ、使い方が微妙に違いますので、興味のある方は調べて見て下さい。ここまで来て、何か忘れていますよね。サブフォルダの中のファイルが取得出来ていないのです。Dir関数では限界です。工夫すれば出来ない事もないのですが、かなり面倒な処理になってしまいます。FileSystemObjectという便利なものがあるのです。最低限の知識として、Dir関数は知っておく必要があるので、説明しましたが、これから覚える人は、FileSystemObjectの使い方に慣れた方が良いでしょう。これを使えば、記述も単純化でき、フルパスの文字数も問題無くなります。あっ、Dir関数のフルパスの文字数制限について説明していませんでしたね。Dir関数は、フルパスの文字数が256Byteまでです。いや、そうらしいです。私は、そんな長いパスになるようなフォルダ構成で、実際にテストしていないので・・・FileSystemObjectでは、この制限はありません。次回は、FileSystemObjectを使って、いままでのプログラムを書きなおしてみましょう。エクセルでファイル一覧を作成.��5(FileDialog)このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。