適用先
Excel 2007

概要

Microsoft Excel では、ブックを閉じるときに [変更の保存] プロンプトを表示しない Microsoft Visual Basic for Applications (VBA) マクロを作成できます。 これを行うには、ブックの [保存済み] プロパティの状態を指定するか、ブックのすべてのアラートを抑制します。

詳細情報

注意:Microsoft は、明示または黙示の保証なしで、説明のみを目的としてプログラミング例を提供しています。 これには、商品性または特定の目的への適合性に関する暗黙の保証が含まれますが、これらに限定されません。 この記事では、デモンストレーションされているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールについてよく理解していることを前提としています。 Microsoft サポート エンジニアは、特定のプロシージャの機能の説明を支援できます。 ただし、これらの例を変更して、特定の要件を満たすために追加の機能を提供したりプロシージャを構築したりすることはできません。 以下のいずれかの例を実装する準備をするには、最初に次の手順を実行します。

  1. Excel を起動し、新しいブックを開きます。

  2. Alt キーを押しながら F11 キーを押して Visual Basic エディターを開きます。

  3. [挿入] メニューの [モジュール] をクリックします。

  4. サンプル マクロ コードをモジュール シートに入力します。

  5. Alt キーを押しながら F11 キーを押して Excel に戻ります。

  6. Microsoft Office Excel 2003 以前のバージョンの Excel では、[ツール] メニューから [マクロ] を選択し、[マクロ] をクリックします。Microsoft Office Excel 2007 で、[開発] タブの [コード] グループで [マクロ] をクリックします。 [開発者] タブが使用できない場合は、次の操作を検討してください:     ある。 [Microsoft Office] ボタンをクリックし、[Excel のオプション] をクリックします。b. [一般的な] カテゴリの [Excel を操作するための上位オプション] で、[表示] をクリックして選択します         [リボン] ボックスの [開発者] タブチェックし、[OK] をクリックします。 

  7. 必要なマクロをクリックし、[実行] をクリックします。

Saved プロパティは、ブックが最後に保存されてから変更が加えられた場合、値 False を返します。予約サブルーチン名 Auto_Close を使用して、ブックを閉じるたびに実行するマクロを指定できます。 その際、ユーザーが Excel でドキュメントを閉じるときにドキュメントを処理する方法を制御できます。  

例 1: 変更を保存せずにブックを閉じる

変更を保存せずにブックを強制的に閉じるには、そのブックの Visual Basic モジュールに次のコードを入力します。  

    Sub Auto_Close()

        ThisWorkbook.Saved = True

    End Sub

Saved プロパティが True に設定されている場合、Excel はブックが既に保存されていて、その最後の保存以降に変更が発生していないかのように応答します。プログラムの DisplayAlerts プロパティは、同じ目的で使用できます。 たとえば、次のマクロを実行すると、DisplayAlerts がオフになり、アクティブなブックが変更を保存せずに閉じられてから、DisplayAlerts が再度オンになります。  

    Sub CloseBook()

        Application.DisplayAlerts = False

        ActiveWorkbook.Close

        Application.DisplayAlerts = True

    End Sub

Close メソッドの SaveChanges 引数も使用できます。次のマクロは、変更を保存せずにブックを閉じます。  

    Sub CloseBook2()

        ActiveWorkbook.Close savechanges:=False

    End Sub

例 2: ブックを閉じて変更を保存する

ブックで強制的に変更を保存するには、そのブックの Visual Basic モジュールに次のコードを入力します。  

    Sub Auto_Close()

        ThisWorkbook.Saved = False の場合

            ThisWorkbook.Save End If

    End Sub

このサブプロファイルは、ファイル Saved プロパティが False に設定されているかどうかを確認します。 False に設定されている場合は、前回の保存以降にブックが変更されており、その変更が保存されます。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。