即効テクニック

ファイル操作関連のテクニック

ブックを閉じる(Closeメソッド)

(Excel 2000)
指定したブックを閉じます。Workbooksコレクションオブジェクトでは構文1を、Workbookオブジェクトでは構文2を使用します。閉じる際にブックを保存するかどうかは引数SaveChanges、FileNameの組み合わせで指定します。


  構文  Object.Close                                         構文1
        Object.Close(SaveChanges, FileName, RouteWorkbook)   構文2



  設定項目          内容
  Object            Workbook、Workbooksコレクションオブジェクト
  SaveChanges       ファイルを保存する(True)、保存しない(False)、
                    保存するかしないかを確認(省略) [省略可能]
  FileName          保存する際の名前を指定 [省略可能]
  RouteWorkbook     次の宛先に回覧(True)、回覧しない(False)、
                    回覧するかしないかを確認(省略) [省略可能]


次のサンプル1を見てください。


●サンプル1●
Sub CloseSamp1()

   ActiveWorkbook.Close SaveChanges:=False  '---変更があっても保存せずに閉じる

End Sub
次のサンプル2は、アクティブなブックに新しい名前を付けて保存したうえで閉じます。


●サンプル2●
Sub CloseSamp2()

    ActiveWorkbook.Close SaveChanges:=True, _
        Filename:=ActiveWorkbook.Path & "\newfile.xls"
        '---同じフォルダに「newfile.xls」という名前で保存し、閉じる

End Sub
newfile.xlsが、CloseSamp2.xlsと同じフォルダにできていることを確認してください。


●ブックを閉じるとき確認メッセージを表示しない●
前回保存した状態と比べて、ブックに変更があったかどうかは、Savedプロパティの値で判断されています。従って、実際には保存をしなくても、この値にTrueを設定すれば、ブックを閉じる際に保存するかどうかを確認するメッセージは表示されません。これを利用すれば、1つめのサンプルは次のサンプル3のように記述できます。

●サンプル3●
Sub CloseSamp3()

    With ActiveWorkbook
        .Saved = True    '---擬似的に保存した状態にする
        .Close           '---閉じる際に確認メッセージは表示しない
    End With

End Sub
現在開いているブックを全て閉じるには、Workbooksコレクションオブジェクトに対してCloseメソッドを使用します。変更後、保存していないブックがあった場合には確認メッセージが表示されます。


●サンプル4●
Sub CloseSamp4()

    Workbooks.Close     '---全ブックを閉じる

End Sub