【エクセルVBAレシピ】一番左のシートへ、外部のエクセルファイルの一番左のシートのすべてのセルをコピーする。

Sub copyCellsFromExternalFirstSheet()
    Dim fileFilter As String
    fileFilter = "Excel ファイル (*.xlsx;*.xlsm;*.xls;*.xlm),*.xlsx;*.xlsm;*.xls;*xlm"
    Dim filePath As Variant
    filePath = Application.GetOpenFilename(fileFilter)
    
    If filePath = False Then Exit Sub
    
    Dim destinationWB As Workbook: Set destinationWB = Application.ActiveWorkbook
    Dim sourceWB As Workbook: Set sourceWB = Workbooks.Open(CStr(filePath))
    sourceWB.Sheets(1).Activate
    sourceWB.Sheets(1).Cells.Copy
    destinationWB.Sheets(1).Activate
    destinationWB.Sheets(1).Cells.Select
    destinationWB.Sheets(1).Paste
    Application.CutCopyMode = False
    sourceWB.Close (False)
End Sub

用途としては
定期的に同じ書式の新しいデータが送られてくる。
データを使いやすくする為、関数を組み込んだファイルを使いたい。
シートをそのままコピーすると組んだ関数の参照がズレる。
シートのコピーではなくシート内のセルのコピペで出来るが手間がかかる。
作業手順の簡略化で他人への操作説明も簡略。


参照:
Application.GetOpenFilename メソッド (Excel) | Microsoft Docs
Workbooks.Open メソッド (Excel) | Microsoft Docs