| 
    
     |  | こんばんは。 
 スマートかどうか解りませんが、↓のような感じでは如何でしょうか?
 2箇所くらいだと、ループしなくてもよいかな、と思います。
 
 Sub test()
 Dim strFile     As String
 Dim rngCopy     As Range
 
 Application.ScreenUpdating = False
 'ファイルオープン
 Workbooks.Open Filename:=strFile
 
 'データコピー
 With ThisWorkbook.Worksheets("MAIN")
 Set rngCopy = _
 ActiveSheet.Range(ActiveSheet.Cells(2, 5), ActiveSheet.Cells(6536, 5).End(xlUp))
 .Cells(5, 1).Resize(rngCopy.Rows.Count).Value = rngCopy.Value
 Set rngCopy = _
 ActiveSheet.Range(ActiveSheet.Cells(2, 11), ActiveSheet.Cells(6536, 11).End(xlUp))
 .Cells(5, 2).Resize(rngCopy.Rows.Count).Value = rngCopy.Value
 End With
 Set rngCopy = Nothing
 Workbooks(Dir(strFile)).Close
 Application.ScreenUpdating = True
 
 End Sub
 
 |  |