負の数値を1900年より前の日付型文字列に変換する方法
Excelでは、1900年1月1日以前の日付を標準的な日付形式で扱うことができません。しかし、VBAを使って独自の関数を作成することで、負の数値を1900年より前の日付型文字列に変換し、独自の日付計算が可能になります。今回は、そのようなVBA関数を作成する方法とその効果について解説します。
関数の導入方法
以下のVBAコードを使って、「DateFromDaysBefore1900」という関数を作成します。
Function DateFromDaysBefore1900(days As Long) As String Dim baseDate As Date baseDate = DateValue("1899/12/31") DateFromDaysBefore1900 = Format(DateAdd("d", days, baseDate), "yyyy/mm/dd") End Function
この関数を使えば、負の数値を1900年1月1日より前の日付型文字列に変換できます。
関数の効果
「DateFromDaysBefore1900」関数は、引数として与えられた負の数値を、1900年1月1日を基準とした日付型文字列に変換します。この関数を使用すると、以下のような計算が可能になります。
- =DateFromDaysBefore1900(1) → “1900/01/01”
- =DateFromDaysBefore1900(0) → “1899/12/31”
- =DateFromDaysBefore1900(-1) → “1899/12/30”
- =DateFromDaysBefore1900(-40,628) → “1788/10/05”
これにより、負の数値をもとに、1900年1月1日以前の日付に対する日付計算が可能になります。
まとめ
Excelの標準機能では、1900年1月1日より前の日付を扱うことが難しいですが、VBAを利用して独自の関数を作成することで、負の数値を1900年以前の日付型文字列に変換し、日付計算を行うことができます。「DateFromDaysBefore1900」関数は、そのような目的で作成された関数で、負の数値を1900年1月1日を基準とした日付型文字列に変換します。
参考:1900年より前の日付型文字列を負の数値に変換するユーザー定義関数
1900年より前の日付型文字列を負の数値に変換するユーザー定義関数
1900年より前の日付型文字列を負の数値に変換する方法 Excelでは、1900年1月1日以前の日付を標準的な日付形式で扱うことができません。しかし、VBAを使って独自の関数を作成することで、1900年より前の日付型文字列を負の数値に変換し...
コメント