私たちは、ディレクトリ内のすべての閉じワークブックとワークシートをループエクセルVBAでプログラムを見て、そしてディスプレイすべての名前の下になります。

Book1.xlsx、Book2.xlsx、Book3.xlsx、Book4.xlsxとBook5.xlsxをダウンロードし、それらを追加し、 “C:\テスト\”

状況:

Files in a Directory Example

コマンドボタンに次のコード行を追加します。

1.まず、我々は2つのString型の変数、ワークシートオブジェクトとInteger型の2つの変数を宣言します。

Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer

2.画面の更新をオフにし、画面のちらつきを避けるために。

Application.ScreenUpdating = False

3.初期化変数ディレクトリ。私たちは、最初の.xlを見つけるために、Dir関数を使用して??ファイルはこのディレクトリに保存されています。

directory = "c:\test\"

fileName = Dir(directory & ".xl??")

注:(?)Dir関数は、複数の文字(*)を使用すると、単一の文字をサポートしているExcelファイルのすべての異なる種類を検索するためのワイルドカード。

4.変数fileNameには現在のディレクトリで見つかった最初のExcelファイルの名前を保持します。 do-while文を追加します。

Do While fileName <> ""

Loop

ループ(5、6、7、8及び9で)次のコード行を追加します。

5.初期Integer型の変数とi行の最初の列にExcelファイルの名前を追加します。

i = i + 1

j = 2

Cells(i, 1) = fileName

6.閉じたExcelファイルからデータを抽出する(またはシート名)への簡単な方法はありません。したがって、我々は、Excelファイルを開きます。

Workbooks.Open (directory & fileName)

7.行iの他の列にExcelファイルのすべてのシート名を追加します。

For Each sheet In Workbooks(fileName).Worksheets

Workbooks("files-in-a-directory.xlsm").Worksheets(1).Cells(i, j).Value = sheet.Name

j = j + 1

Next sheet

8.閉じるExcelファイル。

Workbooks(fileName).Close
  1. Dir関数は、特別な機能です。他のExcelファイルを取得するには、引数なしで再度、Dir関数を使用することができます。

fileName = Dir()

注:これ以上のファイル名が一致しないときに、Dir関数は長さゼロの文字列(「」)を返します。その結果、ExcelのVBAは、do-while文を残します。

(ループ外)再び更新画面上の10ターン。

Application.ScreenUpdating = True

11.テストプログラム。

結果:

Files in a Directory in Excel VBA