例えば、単純なシート間のセルの値の転記を考えてみましょう。
Option Explicit
Sub TEST()
Worksheets("Sheet1").Range("$A$1").Value = _
Worksheets("Sheet2").Range("$A$1").Value
End Sub
Option Explicit
Sub TEST()
Worksheets("Sheet1").Range("$A$1").Value = _
Worksheets("Sheet2").Range("$A$1").Value
End Sub
Option Explicit
Sub TEST2()
ThisWorkbook.Activate
Worksheets("Sheet1").Range("$A$1").Value = _
Worksheets("Sheet2").Range("$A$1").Value
End Sub
Option Explicit
Sub TEST3()
With ThisWorkbook
.Worksheets("Sheet1").Range("$A$1").Value = _
.Worksheets("Sheet2").Range("$A$1").Value
End With
End Sub
Option Explicit
Sub TEST4()
Dim objSh1 As Worksheet ' 自ブックのSheet1
Dim objSh2 As Worksheet ' 自ブックのSheet2
Set objSh1 = ThisWorkbook.Worksheets("Sheet1")
Set objSh2 = ThisWorkbook.Worksheets("Sheet2")
objSh1.Range("$A$1").Value = objSh2.Range("$A$1").Value
End Sub
Option Explicit
Sub TEST5()
Dim objWbk1 As Workbook ' 自ブック
Dim objWbk2 As Workbook ' 現在ブック
Set objWbk1 = ThisWorkbook
Set objWbk2 = ActiveWorkbook
' 1つしか開いていないか
If Workbooks.Count <= 1 Then
MsgBox "2つ以上のブックを開いてから起動させて下さい。", vbExclamation
Exit Sub
ElseIf objWbk1.Name = objWbk2.Name Then
MsgBox "本ブック以外のブックをアクティブにして下さい。", vbExclamation
Exit Sub
End If
' 自ブックをアクティブに
MsgBox "本ブックをアクティブにします。", vbInformation
objWbk1.Activate
' 元アクティブだったブックを戻す
MsgBox "元アクティブだったブックを戻します。", vbInformation
objWbk2.Activate
End Sub