ワークシートを作成するときは、ワークブックに関する特定の情報を追跡する必要がある場合があります。たとえば、ブックの作成日をセルに配置したい場合があります。 Excelは、日付(NOWやTODAYなど)のワークシート関数をいくつか提供しますが、ブックの作成日にアクセスするためのワークシート関数は提供しません。

これは、答えがマクロの使用にあることを意味します。たとえば、現在の日付を決定し、それを特定のセルに(テキストとして)入力するマクロを作成できます。このマクロは、マクロにAuto_Openという名前を付けて、新しいブックを作成するたびに実行できます。以下はそのようなマクロの例です:

Sub Auto_Open()

If Worksheets.Application.Range("A1") = "" Then         Worksheets.Application.Range("A1") = Format(Date, "long Date")

End If End Sub

マクロは、セルA1に何があるかを確認します。そこに何もない場合は、今日の日付のテキストバージョンがそこに配置されます。すでにそこに何かがある場合(後でワークブックを開くたびにあります)、情報はそのままで無傷のままです。

ただし、おそらく最も満足のいくアプローチは、実際にオペレーティングシステムにアクセスし、現在のブックのファイル作成日を取得することです。これは、次のマクロ関数を使用して実行できます。

Function CreateDate() As String     Dim Temp As String     On Error GoTo NoFile     Temp = CreateObject("scripting.filesystemobject"). _       GetFile(ActiveWorkbook.Name).dateCreated

CreateDate = Left(Temp, InStr(Temp, " ") - 1)

GoTo Done NoFile:

CreateDate = "Not Saved"

Done:

End Function

このアプローチは、ワークシートの特定のセルに関連付けられていないことに注意してください。マクロを使用するには、ワークシートの任意のセルに以下を入力するだけです。

=CreateDate()

この関数は、「未保存」(ブックが新しく、以前に保存されたことがない場合)を返すか、ブックが作成された日付を表すテキスト値を返します。

注:

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

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

このヒント(2367)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。