Garyには、複数のユーザーがアクセスできる読み取り専用のワークブックがあります。セルを変更することはできますが、作業を保存することはできません。ブックを終了すると、Garyは、Excelが読み取り専用であることをユーザーに通知したり、コピーを保存するオプションをユーザーに提供したりせずに、Excelを閉じることを望んでいます。

これは、閉じる直前に、マクロを使用してブックの[保存済み]フラグを変更することによって最もよく実行されます。このフラグは、ブックを保存する必要があるかどうかを内部的に示します。フラグがFalseの場合、Excelはブックが保存されていないことを認識します(保存せずに変更が加えられました)。マクロがフラグをTrueに設定すると、すべての変更が保存されたと見なされるため、Excelは直接閉じます。

最も単純なマクロは次のようになります。

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If ThisWorkbook.ReadOnly Then     ThisWorkbook.Saved = True   End If End Sub

マクロは、VBAエディターのThisWorkbookオブジェクトに追加する必要があります。

これにより、ブックが閉じられる直前に自動的に実行されます。フラグはTrueに設定され、マクロが終了すると、Excelは通常の終了手順を続行します。 Excelは未保存の変更はないと見なすため、ユーザーにはメッセージが表示されず、ブックは閉じられます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10349)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。