エクセルVBAを使用してインポートシート
我々は1つのExcelファイルに他のExcelファイルからの輸入シートというエクセルVBAでプログラムを見ていきます以下は。
Book4.xlsx、Book5.xlsxをダウンロードし、それらを追加し、 “C:\テスト\”
状況:
コマンドボタンに次のコード行を追加します。
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
-
Dir関数は、特別な関数です。他のExcelファイルを取得するには、引数なしで再度、Dir関数を使用することができます。
fileName = Dir()
注:これ以上のファイル名が一致しない場合、Dir関数は長さゼロの文字列(「」)を返します。その結果、ExcelのVBAは、do-while文を残します。
9.画面更新をオンにして(ループの外で)再び警告を表示します。
Application.ScreenUpdating = True Application.DisplayAlerts = True
10.テストプログラム。
結果: