Sub Sample1()
Dim ReturnBook As StringReturnBook = ActiveWorkbook.Name
Application.ScreenUpdating = False
Workbooks.Open "Book2.xlsx"
Workbooks(ReturnBook).Activate
Application.ScreenUpdating = True
End Sub
【戻るブックをオブジェクト型変数に格納しておく方法】
Sub Sample1()
Dim ReturnBook As Workbook
Set ReturnBook = ActiveWorkbook
Application.ScreenUpdating = False
Workbooks.Open "Book2.xlsx"
ReturnBook.Activate
Application.ScreenUpdating = True
End Sub
Sub Sample1()
Dim ReturnBook As String, TargetBook As String
ReturnBook = ActiveWorkbook.Name
Application.ScreenUpdating = False
Workbooks.Open "Book2.xlsx"
TargetBook = ActiveWorkbook.Name
Workbooks(ReturnBook).Activate
Application.ScreenUpdating = True
MsgBox TargetBook
End Sub
【開いたブックをオブジェクト型変数に格納しておく方法】
Sub Sample1()
Dim ReturnBook As Workbook, TargetBook As Workbook
Set ReturnBook = ActiveWorkbook
Application.ScreenUpdating = False
Set TargetBook = Workbooks.Open("Book2.xlsx")
ReturnBook.Activate
Application.ScreenUpdating = True
MsgBox TargetBook.Name
End Sub
Sub Sample2()
Dim TargetBook As Workbook, i As Long, j As Long
Set TargetBook = Workbooks.Open("Book2.xlsx")
ThisWorkbook.Activate
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = TargetBook.Sheets("Sheet1").Cells(j, 1) Then
Cells(i, 3) = Cells(i, 2) * TargetBook.Sheets("Sheet1").Cells(j, 2)
Exit For
End If
Next j
Next i
TargetBook.Close
End Sub
う〜ん・・・ちょっと煩雑になりましたね。Withを使ってみましょうか。
Sub Sample2()
Dim TargetBook As Workbook, i As Long, j As Long
Set TargetBook = Workbooks.Open("Book2.xlsx")
ThisWorkbook.Activate
With TargetBook.Sheets("Sheet1")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = .Cells(j, 1) Then
Cells(i, 3) = Cells(i, 2) * .Cells(j, 2)
Exit For
End If
Next j
Next i
End With
TargetBook.Close
End Sub
Sub Sample2()
Dim TargetBook As Workbook, i As Long, FoundCell As Range
Set TargetBook = Workbooks.Open("Book2.xlsx")
ThisWorkbook.Activate
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Set FoundCell = TargetBook.Sheets("Sheet1").Range("A:A").Find(Cells(i, 1))
If Not FoundCell Is Nothing Then
Cells(i, 3) = Cells(i, 2) * FoundCell.Offset(0, 1)
End If
Next i
TargetBook.Close
End Sub