キンバリーは、ワークブックが最後に保存された日付をセルに入れるために使用できる数式があるかどうか疑問に思います。毎日ワークブックを開いたとしても、保存することを選択するたびに日付を更新したいだけです。

これを行うための公式はありません。 Excelにはネイティブ機能がありません。ただし、ブックを保存するたびに日付値をセルに貼り付ける単純なマクロを作成できます。これは、ThisWorkbookオブジェクトに属するBeforeSaveイベントに基づいています:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _   Cancel As Boolean)



Sheets(1).Range("A1").Value = Now()

End Sub

このマクロは、日付(実際にはNow関数によって返される値)をブックの最初のワークシートのセルA1に配置します。そのセルは、Excel内で任意の形式にフォーマットする必要があります。このマクロには潜在的な欠点があります。[名前を付けて保存]を使用して(ブックを別の名前で保存するために)保存をキャンセルすることを選択した場合、保存の_前_に行われたため、日付は引き続き更新されます。つまり、行われたということです。ブックが実際に保存された後ではなく、Excelがブックの保存を開始したときと同じです。

Excelには、情報の更新に使用したくなるようなAfterSaveイベントも含まれていることに注意してください。残念ながら、これにもいくつかの抜け穴があり、BeforeSaveイベントよりも確実なものは何もありません。

必要に応じて、わずかに異なるマクロベースのアプローチを使用できます。

これは、イベントハンドラーではなく、通常のマクロに依存しています:

Function LastModified() As Date     Application.Volatile     LastModified = ThisWorkbook.BuiltinDocumentProperties("Last Save Time")

End Function

日付を表示するセル内で、次のようにマクロを呼び出します。

=LastModified()

数式は、ブックが最後に保存された日付と時刻を返し、任意の方法でフォーマットできます。関数は揮発性として示されているため、ワークシートが再計算されるたびに継続的に更新されます。

注:

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

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

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