次のマクロは Windows では問題ありませんが、MAC では実行時エラーをスローします。問題は、これをテストするための MAC がないことです。このコードは、別のシートのセルから 2 つのファイル (A と B) の場所を取得して開き、データを別のシートにコピーして、いくつかの計算を行うだけです。
Sub Compile()
Application.ScreenUpdating = False
ThisBook = ActiveWorkbook.Name
'open A
Workbooks.Open (Sheets("Control").Range("C2"))
ABook = ActiveWorkbook.Name
'copy data from A
Workbooks(ThisBook).Sheets("Data").Cells.Clear
ActiveSheet.UsedRange.Copy Workbooks(ThisBook).Sheets("data").Range("A1")
'close A
Workbooks(ThisBook).Activate
Workbooks(ABook).Close False
'prep A
Sheets("data").Activate
C = Range("A" & Cells.Rows.Count).End(xlUp).Row
'some calculation
'open B
Workbooks.Open (Sheets("Control").Range("C5"))
BBook = ActiveWorkbook.Name
'prep B
D = ActiveSheet.Range("A" & Cells.Rows.Count).End(xlUp).Row
'some calculation
'copy B
Range("M2:M" & D).Copy Workbooks(ThisBook).Sheets("data").Range("O2")
'close B
Workbooks(ThisBook).Activate
Workbooks(BBook).Close False
'calculate
Sheets("data").Activate
'some more calculations
Application.ScreenUpdating = True
End Sub
データが他のシートの同じワークブックに既にあるバージョンは正常に機能します。したがって、機能していないワークブックを開く/閉じる/切り替える必要があります。