• ベストアンサー

フォルダのプロパティ内容の取得-VBA

サブフォルダとファイルを含むフォルダのプロパティを開くと、 内容欄にファイル数(サブフォルダ内のファイルを含む)とフォルダ数が表示されます。 このファイル数をVBAにて取得する方法を教えて下さい。 特定のフォルダを指定し、そのフォルダ内だけのファイル数取得する方法は、 インターネット上に散見されますが、 サブフォルダ内のファイルを含むファイル数を一発で取得する方法が見つかりません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

一発で取得する方法はありません。 再帰を使って数えて下さい。 # 再帰でなくてQueueでもStackでもいいけれども。 そもそも,フォルダに「ファイル数」なんてプロパティが物理的に存在しているわけではなく, 毎回(キャッシュはしているようだが)ディレクトリを辿って数えています。 子孫ディレクトリ数が多いディレクトリ(できたらネットワーク経由)のプロパティを表示してみると,数えていることがわかりますよ。

YON56
質問者

お礼

早々のご回答ありがとうございます。 一発で取得する方法がないことが判りました。 残念です。

関連するQ&A

  • フォルダの中のファイル数を取得するには vba

    手作業でフォルダのプロパティからファイルの数を確認することはできるのですが VBAで(FSOなど)、該当のフォルダの中に何個ファイルが入ってるかを確認するコードはありますか? Sub test() Dim MyFileName As String Dim MyFolderName As String Dim i As Long MyFolderName = "\○○\icon" MyFileName = Dir(MyFolderName & "\*.*") Do While MyFileName <> "" MyFileName = Dir() i = i + 1 Loop MsgBox i End Sub このようなコードを作ってみたのですが、 画像のように実際に目で確認したファイル数と一致しません。 正しい数が取得できるvbaコードはありますか?

  • ディレクトリ数のみを取得するコマンド

    コマンドプロンプトで、 >dir と打つと、ファイル名・フォルダ名が表示され、その後にディレクトリ内のファイル数とフォルダ数と空き容量が表示されると思います。 指定したフォルダ内にある、全てのフォルダ数(複数階層の場合は末端のフォルダまでの数)のみを取得したいのですが、そんなコマンドあるのでしょうか。 UNIXではあるようですが、WINDOWSで見つかりません。 どなたかご存知の方、教えて下さい。 GUI操作で言うと、特定のフォルダを右クリック、プロパティで表示される「フォルダ数」を取得したのです。 よろしくお願い致します。

  • 【VBA】 フォルダの全ファイルを取得したい

    あるフォルダ内のCSVファイル全てを取得してひとつのファイルにまとめようと思っています。 下記の条件が必要なのですが、どのように記述したらよいでしょうか? ・プログラム内にフォルダのファイルパスを  記述せずにユーザにフォルダを指定させたい。  (テキストボックスはエラーが起こりやすいので避けたい) ・フォルダ内のファイルをひとつずつ開いて特定のシートに合算させたい  (合算処理はわかるのですが、そのほかがわかりません・・・) お手数ですが、どなたかわかる方がいたら 教えてください

  • フォルダのファイル数をvbaで取得したい

    vbaなのですが、フォルダにgifファイルがたくさんはいっていますが、 その数を数えるコードを教えてください。 今は、 Sub Macro7() Dim File As String Dim i As Long File = Dir("C:\*.*", vbDirectory) Do While File <> "" File = Dir i = i + 1 Loop MsgBox "ファイル数は" & i & "です" End Sub のように、全てのファイル数をカウントして求めています。

  • フォルダ名だけを取得するVBA

    VBAを使ったエクセルテンプレート適用ツールを作成しているのですが そのVBAのことで教えてください。 現在自作のフォーム上にあるテキストボックスにフルパスが入っているとします(添付図参照)。 *この前提は必須と考えてください。 次に作成ボタンをクリックすると Step1 新しいブックが開かれ行幅や書式などが自動で調整されます。 Step2 ブックの保存ダイアログが自動で開きます。     ただし、保存ダイアログが開いた時点で自作フォーム中の     テキストボックスで指定したフルパスに移動しており、     且つ移動先のフォルダ名(<-注意!!フルパス名ではありません!!)と     同じ文字列をファイル名入力欄に自動で入力されるようにします。    ex) D:\MyProject\Project01\TaskA\にブックを作成し保存する場合、      保存ダイアログのファイル名欄にTaskAとだけ書く。 マクロ自体はここでストップし、これ以降はユーザーがそのファイルメモで 保存してよいかどうかを判断し、問題なければ手動でダイアログ上の「保存」ボタンを押します。 問題はStep2で、保存先のフォルダ名と同じ文字列を保存ダイアログのファイル名に記入するには どのようなコードを書いたらよいでしょうか。 私自身としては下記の二案を考えているのですがそれぞれについて疑問があるので教えてください。 案1 作成ボタンを押した時点でテキストボックスに書かれているフルパスの文字列から   末尾にあるフォルダ名だけを取得して変数に代入し、これを保存ダイアログの   ファイル名欄に反映させる。   疑問:テキストボックスのValue値に書かれているフルパスを示す文字列から      末尾のフォルダ名だけを取得するためのコードは何と書けばよいのでしょうか? 案2 ブックの保存ダイアログが開いて保存先のパスに移動してから今保存ダイアログで    開いているフォルダ名を取得する。    疑問:今アクティブになっているブックが保存されているフォルダ名だけを取得する    方法なら確かあったような気がしています。    しかし今保存ダイアログで表示されているフォルダ名を取得するコードは何と    書けばよいのでしょうか?    そもそもそういったコードや操作自体VBAにあるのでしょうか?

  • フォルダのプロパティが表示されない

    表題の「フォルダのプロパティが表示されない」 フォルダを右クリックすると「開くからプロパティ」 迄が表示されます、プロパティを右クリックしても フォルダのプロパティが表示されません。 最近まで表示されて居たのですが、出来なくなりました。 フォルダの中のファイルはプロパティが表示されます 表示出来る様に設定方法をご指導頂きたく、宜しく お願いいたします。

  • 非表示のフォルダを元に戻したいのですが

    マイピクチャのフォルダの中にあるサブフォルダなのですが、 プロパティの全般タブで属性の隠しファイルというところにチェックを入れ、 OKを押したら非表示になってしまいました。 そのサブフォルダが入っていたフォルダのプロパティを見ると フォルダ数は24になっているのですが、 実際に開けてみると23しかありません。 こんな説明でうまく伝わっているか不安ですけど、 元通りに表示される方法はありますでしょうか。

  • ExcelVBAでファイルのプロパティを取得

    こんにちは ExcelVBAでファイルのプロパティを取得する方法をお伺いします。 更新日時やファイルサイズの取得についてはいくつか参考にするサイトが見つかりました。 今回知りたいのはJPEGなど画像ファイルの縦横のピクセル数です。ファイルのプロパティとしては「大きさ ○○×△△」「横 ○○ピクセル」「高さ △△ピクセル」と表示される項目です。 これをExcelVBAで取得する方法をお教えください。

  • Access97VBAにてオブジェクトの説明欄の内容を取得したい

    ACCESS97のVBAにて開発をしています。 データベースウィンドウに表示される、各オブジェクトの説明欄の値(テーブルやフォームなど、オブジェクトを右クリック-プロパティにて、「説明」という欄に入力したもの)を取得したいのですが、指定の仕方がわかりません。 前提としては、Microsft DAO 3.5 Object Libraryを参照設定に追加してあります。 テーブル名やフォーム名は、DocumentオブジェクトのNameプロパティにて取得できたのですが・・・ ご存知の方がいらっしゃいましたら、是非教えてください。

  • システムのプロパティの取得

    ExcelのVBAを使って、システムのプロパティの内容を取得したいのですが、 可能でしょうか? マイコンピューターを右クリックしてプロパティを選択し、全般タブに 表示されるシステム、使用者、コンピューターに関する項目のことです。 よろしくお願いします。