我々は1つのExcelファイルに他のExcelファイルからの輸入シートというエクセルVBAでプログラムを見ていきます以下は。

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

状況:

Import Sheets using Excel VBA

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

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

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2.画面の更新をオフにして、警告を表示します。

Application.ScreenUpdating = False

Application.DisplayAlerts = 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で)次のコード行を追加します。

5.閉じExcelファイルからワークシートをコピーする簡単な方法はありません。

そこで我々は、Excelファイルを開きます。

Workbooks.Open (directory & fileName)

6.インポート輸入sheet.xlsmにExcelファイルからシート。

For Each sheet In Workbooks(fileName).Worksheets

total = Workbooks("import-sheets.xlsm").Worksheets.count

Workbooks(fileName).Worksheets(sheet.Name).Copy _

after:=Workbooks("import-sheets.xlsm").Worksheets(total)

Next sheet

解説:変数の合計は、輸入sheet.xlsmのワークシートの合計数のトラックを保持しています。私たちは、各ワークシートをコピーするワークシートオブジェクトのコピーメソッドを使用して、インポート・sheets.xlsmの最後のワークシートの後に貼り付けます。

7.閉じるExcelファイル。

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

fileName = Dir()

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

9.画面更新をオンにして(ループの外で)再び警告を表示します。

Application.ScreenUpdating = True

Application.DisplayAlerts = True

10.テストプログラム。

結果:

Import Sheets Result