技術情報
[01] ファイル入出力
ファイルの入出力では、テキストファイルなどのファイル全般の入出力処理に加えて、ワークブックの入出力処理について説明します。

[ 1] ワークブックの新規作成
プログラムからワークブックを新規作成するには、WorkbooksオブジェクトのAddメソッドを使います。
(例)
Workbooks.Add

新規作成されたワークブックがアクティブになりますので、ActiveWorkbookプロパティを使って、新規作成したワークブックの操作ができるようになります。
しかし、別のワークブックをアクティブにしたり、プログラムを実行中のワークブックがアクティブになった場合、新規作成されたワークブックが参照に様々な問題が生じることがあります。
そのため、新規作成と同時に、オブジェクト変数に代入しておくと便利です。
(例)
Dim wb As Workbook
Set wb = Workbooks.Add
' 以降、オブジェクト変数wbで
' 新規作成のワークブックを
' 参照することができるようになります。
' 以下は、新規作成したワークブックの
' Sheet1のA1セルに値を代入します。
wb.Sheets("Sheet1").Cells(1,1).Value = 1000

[ 2] ワークブックを開く

プログラムからワークブックを開くには、WorkbooksオブジェクトのOpenメソッドを使います。
(例)
Workbooks.Open("D:\test.xls")

ワークブックを開いた直後は、新規作成と同様にそのワークブックがアクティブになります。
その場合は、ActiveWorkbookプロパティでそのワークブックを操作することができますが、一旦別のワークブックがアクティブになった場合には、Workbooksオブジェクトに開いたファイル名を代入することでワークブックを指定することができます。
また、新規作成と同様に、開いた直後にオブジェクト変数に代入しておく方法もあります。
(例)
' [Workkbooksオブジェクトを使用する方法]
' Workbooksオブジェクトに
' ファイル名を代入することにより
' 参照することができるようになります。
' 以下は、開いたワークブックの
' Sheet1のA1セルに値を代入します。
Workbooks.Open("D:\test.xls")
Workbooks("test.xls").Sheets("Sheet1").Cells(1,1).Value = 1000

' [オブジェクト変数を使用する方法]
' オブジェクト変数wbで
' 開いたワークブックを
' 参照することができるようになります。
' 以下は、開いたワークブックの
' Sheet1のA1セルに値を代入します。
Dim wb As Workbook
Set wb = Workbooks.Open("D:\test.xls")
wb.Sheets("Sheet1").Cells(1,1).Value = 1000

[ 3] ワークブックを閉じる・保存する

ワークブックを上書き保存するにはSaveメソッド、名前を付けて保存するにはSaveAsメソッドを使用します。
ワークブックを閉じるには、Closeメソッドを使用します。
Closeメソッドで名前を付けて保存した後、閉じるようにすることもできます。
これらのメソッドをうまく組み合わせてワークブックの保存や終了を制御します。
「上書き保存」例
' [Workkbooksオブジェクトを使用する方法]
Workbooks.Open("D:\test.xls")
Workbooks("test.xls").Sheets("Sheet1").Cells(1,1).Value = 1000
Workbooks("test.xls").Save

' [オブジェクト変数を使用する方法]
Dim wb As Workbook
Set wb = Workbooks.Open("D:\test.xls")
wb.Sheets("Sheet1").Cells(1,1).Value = 1000
wb.Save

「名前を付けて保存」例
' [ActiveWorkbookプロパティを使用する方法]
Workbooks.Add
ActiveWorkbook.Sheets("Sheet1").Cells(1,1).Value = 1000
ActiveWorkbook.SaveAs

' [オブジェクト変数を使用する方法]
Dim wb As Workbook
Set wb = Workbooks.Add
wb.Sheets("Sheet1").Cells(1,1).Value = 1000
wb.SaveAs FileName:="D:\test.xls"
' (注)SaveAsメソッドには様々なパラメータがあります。

「閉じる」例
' [Workkbooksオブジェクトを使用する方法]
Workbooks.Open("D:\test.xls")
Workbooks("test.xls").Sheets("Sheet1").Cells(1,1).Value = 1000
' 上書き保存せずに終了
Workbooks("test.xls").Close SaveChanges:=False

' [オブジェクト変数を使用する方法]
Dim wb As Workbook
Set wb = Workbooks.Open("D:\test.xls")
wb.Sheets("Sheet1").Cells(1,1).Value = 1000
' 上書き保存して終了
wb.Close SaveChanges:=True