ワークブックのCloseメソッド

ワークブックを閉じるときは Close メソッドを使用します。変更があった場合に変更内容を保存するかどうかや、変更後のファイル名は引数で指定することができます。

スポンサーリンク

Closeメソッドの使用方法

構文
object.Close [SaveChanges] [, Filename] [, RouteWorkbook]
※objectはWorkbookオブジェクトを表す変数
引数名 省略 データ型定数 説明
SaveChanges True / False True を指定すると、変更がブックに保存されます。 ブックにファイル名が付けられていない場合は、FileName がファイル名として使用されます。 Filename を省略すると、ファイル名を指定するダイアログ ボックスがユーザーに表示されます。
Filename バリアント型(Variant) 変更後のブックのファイル名を指定します。
RouteWorkbook True / False ブックを次の受信者に回覧する必要がない場合、この引数は無視されます。 ブックを次の受信者に回覧する必要がある場合に True を指定すると、次の受信者にブックが送信されます。 False を指定すると、ブックは送信されません。 この引数を省略すると、ブックを送信するかどうかを確認するダイアログ ボックスがユーザーに表示されます。

Closeメソッドの使用例

ワークブックを保存せずに閉じる

ワークブック”test.xlsx”を保存せずに閉じる例です。

Sub sample_eb087_01()
    With Workbooks("test.xlsx")
        'シートに変更を加える
        .Worksheets(1).Range("A1").Value = "test1"

        '保存せずに閉じます。
        .Close False
    End With
End Sub

 Withステートメント

ワークブックを保存して閉じる

ワークブック”test.xlsx”を保存してから閉じる例です。

Sub sample_eb087_02()
    With Workbooks("test.xlsx")
        'シートに変更を加える
        .Worksheets(1).Range("A1").Value = "test2"

        '開いたときと同じファイル名で保存して閉じます。
        .Close True
    End With
End Sub

 Withステートメント

ワークブックを別名で保存して閉じる

ワークブック”test.xlsx”を別名”test_BACKUP.xlsx”で保存してから閉じる例です。

ファイル名に何かしら文字列を追加するということはよくあるケースですので、汎用的に使えるように文字列操作関数(InStrRevなど)を使用して処理しています。

Sub sample_eb087_03()
    Dim pos             As Integer
    Dim NewFilename     As String

    With Workbooks("test.xlsx")
        .Worksheets(1).Range("A1").Value = "test3"

        'ファイルパスの後ろからファイル拡張子の"."を探します。
        pos = InStrRev(.Name, ".")

        'ワークブック名に"_BACKUP"を付与します。
        NewFilename = .Path & "\" & Left(.Name, pos - 1) & _
                      "_BACKUP" & Mid(.Name, pos)

        '別名で保存して閉じます。
        .Close SaveChanges:=True, _
               Filename:=NewFilename
    End With
End Sub

 Withステートメント InStrRev関数 Left, Right関数 Mid関数

別名で保存された様子
別名で保存された様子
タイトルとURLをコピーしました