unote 書けば書くほどに

VBA シート取り込み

Sub MergeExcelFiles()
Dim FolderPath As String
Dim FileName As String
Dim TemplateFile As String
Dim CurrentWorkbook As Workbook
Dim TemplateWorkbook As Workbook

' テンプレートファイルのパスを取得
TemplateFile = "テンプレート.xlsx"
TemplateFile = ThisWorkbook.Path & "\" & TemplateFile

' フォルダーのパスを取得
FolderPath = ThisWorkbook.Path & "\"

' テンプレートファイルを開く
Set TemplateWorkbook = Workbooks.Open(TemplateFile)

' フォルダー内のExcelファイルをループ処理
FileName = Dir(FolderPath & "*.xlsx")
Do While FileName <> ""
' テンプレートファイルはスキップする
If FileName <> "テンプレート.xlsx" Then
' 現在のExcelファイルを開く
Set CurrentWorkbook = Workbooks.Open(FolderPath & FileName)

' シートをテンプレートファイルに追加する
CurrentWorkbook.Sheets.Copy After:=TemplateWorkbook.Sheets(TemplateWorkbook.Sheets.Count)

' 現在のExcelファイルを閉じる
CurrentWorkbook.Close SaveChanges:=False
End If

' 次のExcelファイルを取得
FileName = Dir
Loop

' テンプレートファイルを保存
TemplateWorkbook.Save

' テンプレートファイルを閉じる
TemplateWorkbook.Close SaveChanges:=False

' 完了メッセージを表示
MsgBox "Excelファイルの結合が完了しました。", vbInformation
End Sub

Sub ImportListFiles()
Dim TemplateFile As String
Dim ListFolder As String
Dim ListFilePath As String
Dim TemplateWorkbook As Workbook

' テンプレートファイルのパスを取得
TemplateFile = ThisWorkbook.Path & "\" & "テンプレート.xlsm"

' listフォルダーのパスを取得
ListFolder = ThisWorkbook.Path & "\" & "list\"

' テンプレートファイルを開く
Set TemplateWorkbook = Workbooks.Open(TemplateFile)

' listフォルダー内のExcelファイルを取り込む
ListFilePath = ListFolder & "リスト.xlsx"

' リストファイルをテンプレートファイルに取り込む
TemplateWorkbook.Sheets("取り込みシート").UsedRange.ClearContents ' 取り込みシートをクリア
TemplateWorkbook.Sheets("取り込みシート").Cells.ClearFormats ' 書式をクリア
TemplateWorkbook.Sheets("取り込みシート").Cells.ClearComments ' コメントをクリア
TemplateWorkbook.Sheets("取り込みシート").Cells.ClearHyperlinks ' ハイパーリンクをクリア

Workbooks.Open(ListFilePath).Sheets(1).UsedRange.Copy Destination:=TemplateWorkbook.Sheets("取り込みシート").Range("A1")

' 取り込んだデータを処理する(ここで必要な操作を行う)

' リストファイルを閉じる
Workbooks("リスト.xlsx").Close SaveChanges:=False

' テンプレートファイルを保存
TemplateWorkbook.Save

' テンプレートファイルを閉じる
TemplateWorkbook.Close SaveChanges:=False

' 完了メッセージを表示
MsgBox "リストファイルの取り込みが完了しました。", vbInformation
End Sub