ブックを開くときはWorkbooksコレクションのOpenメソッドを実行します。 次のコードは、C:\Book1.xlsを開きます。Sub Sample1() Workbooks.Open "C:\Book1.xls" End SubExcelは、開いたブックがアクティブブックになりますので、続けて、開いたC:\Book1.xlsを操作するときは、アクティブブックを操作の対象にします。Sub Sample2() Workbooks.Open "C:\Book1.xls" ActiveWorkbook.Sheets("Sheet2").Activate End Subこのように、単一のブックだけを操作するときは、アクティブブックを操作すればいいのですが、複数のブックを操作する場合は、アクティブブックに頼っているとコードが煩雑になります。 そんなときは、Openメソッドで開いたブックをオブジェクト変数に格納しましょう。Sub Sample3() Dim wb As Workbook Set wb = Workbooks.Open("C:\Book1.xls") wb.Sheets("Sheet2").Activate End SubOpenメソッドは、開いたブックを返します。 その返り値(ブック)をオブジェクト変数に格納します。 オブジェクト変数に格納するときは、Setステートメントを使います。 また、返り値を利用するのですから、メソッドの引数を括弧で囲みます。 このように、メソッドが返すオブジェクトを変数に格納するとその後の操作が楽になる場合が多いです。 次のコードは、非表示のワークシートを作業用として使います。Sub Sample4() Dim ws As Worksheet, OldSheet As Worksheet Set OldSheet = ActiveSheet Application.ScreenUpdating = False Set ws = Worksheets.Add ws.Visible = False OldSheet.Activate Application.ScreenUpdating = True With ws .Range("A1").Value = 10 .Range("A2").Value = 20 MsgBox "答は" & .Range("A1").Value + .Range("A2").Value & "です" Application.DisplayAlerts = False .Delete Application.DisplayAlerts = True End With End Sub次のコードは、2つのコメントに計算結果を表示します。 アクティブシートのセル範囲A1:A10に任意の数値を入力してから実行してください。Sub Sample5() Dim com1 As Comment, com2 As Comment, I As Long, buf As Long Set com1 = Range("C3").AddComment Set com2 = Range("C4").AddComment For I = 1 To 10 buf = buf + Cells(I, 1).Value Next I com1.Text "合計:" & buf buf = 0 For I = 1 To 10 If buf < Cells(I, 1).Value Then buf = Cells(I, 1).Value Next I com2.Text "最大値:" & buf End Sub