Note: The other languages of the website are Google-translated. Back to English

Excelですべてのフォルダとサブフォルダを一覧表示するにはどうすればよいですか?

指定したディレクトリのすべてのフォルダとサブフォルダをワークシートに一覧表示するというこの問題に悩まされたことはありますか? Excelでは、特定のディレクトリ内のすべてのフォルダの名前を一度に取得するための迅速で便利な方法はありません。 タスクに対処するために、この記事はあなたを助けるかもしれません。

VBAコードを使用してすべてのフォルダーとサブフォルダーを一覧表示します

OfficeタブOfficeでタブ付きの編集と閲覧を有効にし、作業をはるかに簡単にします...
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
  • 何でも再利用: 最もよく使用される、または複雑な数式、グラフなどをお気に入りに追加して、後ですぐに再利用できます。
  • 20以上のテキスト機能: テキスト文字列から数値を抽出します。 テキストの一部を抽出または削除します。 数字と通貨を英語の単語に変換します。
  • マージツール:複数のワークブックとシートをXNUMXつに。 データを失うことなく複数のセル/行/列をマージします。 重複する行と合計をマージします。
  • 分割ツール:値に基づいてデータを複数のシートに分割します。 XNUMXつのワークブックから複数のExcel、PDF、またはCSVファイル。 XNUMX列から複数列。
  • 貼り付けスキップ 非表示/フィルタリングされた行; カウントと合計 背景色別; パーソナライズされた電子メールを複数の受信者にまとめて送信します。
  • スーパーフィルター: 高度なフィルタースキームを作成し、任意のシートに適用します。 並び替え 週、日、頻度など。 フィルタ 太字、数式、コメント...
  • 300 以上の強力な機能。 Office 2007-2021 および 365 で動作します。 すべての言語をサポートします。 企業や組織に簡単に導入できます。

矢印青い右バブル VBAコードを使用してすべてのフォルダーとサブフォルダーを一覧表示します

指定したディレクトリからすべてのフォルダ名を取得する場合は、次のVBAコードが役立つ場合があります。次のようにしてください。

1。 を押し続けます Alt + F11 キー、そしてそれは開きます Microsoft Visual Basic forApplicationsウィンドウ.

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュールウィンドウ.

VBAコード:すべてのフォルダーとサブフォルダー名を一覧表示します

Sub FolderNames()
'Update 20141027
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Choose the folder"
    .Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
For Each SubFolder In prntfld.SubFolders
    xRow = Range("A1").End(xlDown).Row + 1
    Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Next SubFolder
For Each subfld In prntfld.SubFolders
    getSubFolder subfld
Next subfld
End Sub

3。 次に、 F5 このコードを実行するためのキー、および フォルダを選択してください ウィンドウが表示されたら、フォルダ名とサブフォルダ名を一覧表示するディレクトリを選択する必要があります。スクリーンショットを参照してください。

doc-list-folder-names-1

4に設定します。 OK をクリックします。 OK、フォルダとサブフォルダのパス、ディレクトリ、名前、作成日、最終変更日が新しいブックに表示されます。スクリーンショットを参照してください。

doc-list-folder-names-1


関連記事:

ディレクトリ内のファイルをExcelのワークシートに一覧表示するにはどうすればよいですか?


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (18)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
どうもありがとうございました。cmdプロンプトを使用してフォルダを含むtxtを作成し、Excelにコピーしていましたが、今では簡単に作成できます:)
このコメントは、サイトのモデレーターによって最小化されました
フォルダのリンクも作成する必要がある場合、コーディングで何を変更すればよいですか。ボタンを作成して同じコーディングをリンクすることはできません。これにより、マクロの実行方法を知らないユーザーに役立ちます。
このコメントは、サイトのモデレーターによって最小化されました
私はあなたの要求を正確に行いました。 会社のロゴをwhorksheetに配置し、それを右クリックしてマクロ(上記のコード)を割り当てました。使用方法のユーザー指示を挿入することもできます。
このコメントは、サイトのモデレーターによって最小化されました
このコードは本当にその日を救った。 共有していただきありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私はあなたの指示に従いましたが、F5を押して実行するとエラーが発生します。 以下のエラーは、「DimxWsAsWorksheet」を強調しています。 使用できる更新されたコードはありますか? コンパイルエラー:ユーザー定義型が定義されていません
このコメントは、サイトのモデレーターによって最小化されました
[quote]こんにちは、私はあなたの指示に従いましたが、F5を押して実行するとエラーが発生します。 以下のエラーは、「DimxWsAsWorksheet」を強調しています。 使用できる更新されたコードはありますか? コンパイルエラー:ユーザー定義型が定義されていませんキャラリン[/quote]KutoolsアドオンまたはMSExcelVBAエディターを使用していますか? アドオンを使用していないため、エラーを再現できません。 MS VBA Editorの使用は、エラーなしで機能します。
このコメントは、サイトのモデレーターによって最小化されました
このコードを実行すると機能しますが、選択したフォルダーの横にある最初のフォルダーのみが表示されます。 たとえば、コードを実行するときに「C:\ Users \ Johnson \ Music」を選択します(注:音楽フォルダー内に70個のフォルダーがあります)コードを実行すると、最初のフォルダーのみが表示され、その中のすべてのフォルダーが一覧表示されますフォルダ。 Musicフォルダ内のすべてのフォルダを一覧表示したいのですが。
このコメントは、サイトのモデレーターによって最小化されました
私は他の人たちと一緒です-それはある程度まで機能します。

私にとって、そのポイントは、新しいs / sを作成し、(セルA1に)表示したフォルダーの詳細を示します。2行目の黄色で強調表示されたバーの後に見出しが続きます。

私が見ているフォルダは、サブフォルダを除いて空であり(つまり、データファイルが存在しません)、サブフォルダはまったく表示されません。

誰かがサブフォルダとそのファイルを一覧表示するのを手伝ってもらえますか?
このコメントは、サイトのモデレーターによって最小化されました
サイズを追加するために変更しました:



Sub FolderNames()
'更新20141027
Application.ScreenUpdating = False
文字列としてのDimxPath
ワークシートとしての薄暗いxW
Dim fso As Object、j As Long、folder1 As Object
Application.FileDialog(msoFileDialogFolderPicker)を使用
.Title="フォルダを選択してください"
。見せる
最後に
エラーで次の再開
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)& "\"
アプリケーション.ワークブック.追加
xWs=Application.ActiveSheetを設定します
xWs.Cells(1、1).Value = xPath
xWs.Cells(2、1).Resize(1、6).Value = Array( "Path"、 "Dir"、 "Name"、 "Date Created"、 "Date Last Modified"、 "Size")
Set fso = CreateObject( "Scripting.FileSystemObject")
folder1 = fso.getFolder(xPath)を設定します
getSubFolder フォルダー1
xWs.Cells(2、1).Resize(1、6).Interior.Color = 65535
xWs.Cells(2、1).Resize(1、6).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Subの
Sub getSubFolder(ByRef prntfld As Object)
オブジェクトとしての薄暗いサブフォルダ
オブジェクトとしての薄暗いsubfld
xRowを暗くする
prntfld.SubFoldersの各サブフォルダ
xRow = Range( "A1")。End(xlDown).Row + 1
Cells(xRow、1).Resize(1、6).Value = Array(SubFolder.Path、Left(SubFolder.Path、InStrRev(SubFolder.Path、 "\"))、SubFolder.Name、SubFolder.DateCreated、SubFolder。 DateLastModified、SubFolder.Size)
次のサブフォルダ
prntfld.SubFoldersの各subfldについて
getSubFolder サブフィールド
次のサブフィールド
End Subの
このコメントは、サイトのモデレーターによって最小化されました
SubFolder.Size関数を含めると、スクリプトはすべてのサブフォルダーをリストするのではなく、最初のレベルのみをリストします。
サイズを含めて、すべてのサブフォルダーを一覧表示するにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは。 私が見つけるのに苦労しているコードについて私を助けてくれませんか。

以下は、コードの要件です。



1. VBAは、すべてのフォルダーとサブフォルダーを通過する必要があります
あらゆる種類のファイルをチェックします。 ユーザーは次のパスのみを指定する必要があります
一番上のフォルダ。 次に、コードはすべてのフォルダーとサブフォルダーをチェックする必要があります
トップフォルダ内。



2.ファイルを確認した後、コードはすべてのファイルを圧縮する必要があります
3か月以上アクセスされていないもの。 アクセス期間は
必要に応じて将来変更できるはずです。 そうすべき
必要に応じて1か月または5か月に変更させてください。



3.ファイルを圧縮した後、コードは
圧縮された元のファイル。



4.zipファイルはと同じパスに保存する必要があります
元のファイル。
このコメントは、サイトのモデレーターによって最小化されました
素晴らしいツール! 長い研究の結果、この正確なおもちゃが見つかりました:)
このコメントは、サイトのモデレーターによって最小化されました
私が必要としていたものと、それを機能させる方法についての完全に明確な指示。 どうもありがとう
このコメントは、サイトのモデレーターによって最小化されました
どうもありがとうございました!、とても便利です。
このコメントは、サイトのモデレーターによって最小化されました
これはどのように機能しましたか...どうもありがとうございました。 たった3つの追加-ステップ5で、[ステップイン]をクリックする必要があり、フォルダを選択するためにFXNUMXキーだけが機能しました。
このコメントは、サイトのモデレーターによって最小化されました
この便利なコードをありがとうございました。 その可能性のある保存結果は、新しいものではなく同じワークブックになりますか?
このコメントは、サイトのモデレーターによって最小化されました
ありがとうございます。これは、クライアントのフォルダを記録するために必要なものです。
このコメントは、サイトのモデレーターによって最小化されました
素晴らしい仕事...それは私にとって非常に役に立ちます、どうもありがとう
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護