Excelでマクロを書いていると、他のExcelファイルを開いて参照したり、書き込んだりしたくなるケースがあります。
私は以下のようにしています。
Dim strTMP As String, strPATH As String, i as Integer, cnt as integer Dim wbTMP As Workbook ' Excelファイルを開く Set wbTMP = Workbooks.Open(strPATH, 0, True) ' 必要な処理を cnt = 0 For i = 1 to 10 cnt = cnt + wbTMP.Worksheets("Sheets3").Cells(i, 2).value Next i ' 開いたファイルを閉じる wbTMP.Close End If
別ファイルを開いておいて元のファイルに転記したい場合などは、Workbookオブジェクトを入れる変数をもう一つ用意しておいて、新しいファイルをOpenする前に
Set wbBASE = ActiveWorkbook
などとして、wbBASE経由でアクセスしています。
もう一歩進めると、Worksheetオブジェクトを入れる変数を用意して、
Dim wbSHEET as WorkSheet Set wsSHEET = Worksheets("Sheet1")
として、wsSHEET経由で操作するとか。
もしかして、もっとうまい方法があるんかな?