Excelマクロをプログラミングするときは、日付が内部的に変数内にシリアル番号として格納されていることを知っておく必要があります。シリアル番号は、開始「基準日」から、特に100年1月1日から経過した日数を表します。これは、必要に応じて、シリアル番号を使用して計算を実行できることを意味します。たとえば、日付を相互に減算するだけで、2つの日付間の日数を見つけることができます。

日付の計算をより細かくしたい場合は、DateDiff関数を使用できます。この関数を使用すると、たとえば、2つの日付の間の週数または月数を決定できます。このタイプの情報を見つけるために関数を使用するには、次のようにします。

iNumWeeks = DateDiff("ww", dFirstDate, dSecondDate)

iNumMonths = DateDiff("m", dFirstDate, dSecondDate)

最初の行は2つの日付の間の週数を決定し、2番目の行はそれらの間の月数を決定します。

DateDiff関数はマクロ(VBA)関数であり、ワークシート関数ではないことに注意してください。 Excelは、1900年1月1日から始まるワークシートの日付の範囲を処理します。ただし、VBAでは、日付は(すでに述べたように)100年から開始できます。つまり、マクロは、以前の日付を含む、はるかに広い範囲の日付を処理できます。 Excelによってネイティブに処理されるものに。

注:

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

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

このヒント(9046)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。