Excel

【Excel】エクセルで1か月足す(日付の足し算+1)・1か月後を表示する方法【関数やマクロVBAも】

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

この記事では、エクセルで1か月足す(日付の足し算+1)・1か月後を表示する方法【関数やマクロVBAも】について解説しています。

関数だけでなく、使えると快適さが増すVBA(マクロ)の処理も記載していますので、ぜひ好みの方法をご活用くださいませ。

それでは詳しく見ていきます♪

 

エクセルで日付に1ヶ月足す(同日)方法【EDATE関数の使用】

エクセルで日付に1ヶ月を足す方法として、EDATE関数を使用する方法があります。

DATE関数は、指定した日付に指定した月数を加算(または減算)した日付を返します。

例えば、B2セルに2023年4月1日と入力されている場合、C2セルに以下の数式を入力します。

=EDATE(B2, 1)

この数式により、C2セルには2023年5月1日と表示されます。

次に、C2セルの右下隅にあるオートフィルハンドルをダブルクリックすることで、B列全体の日付に対して1ヶ月後の日付がC列全体に反映されます。

処理前:

A B C
1 2023/04/01
2 2023/04/15
3 2023/04/30

 

処理後:

A B C
1 2023/04/01 2023/05/01
2 2023/04/15 2023/05/15
3 2023/04/30 2023/05/30

 

VBA(マクロ)の場合

VBA(マクロ)を使用して、日付に1ヶ月を足す処理を行うこともできます。

以下のコードを使用します。


Sub AddOneMonth()
    Dim lastRow As Long
    lastRow = Range("B" & Rows.Count).End(xlUp).Row
    
    Range("C2:C" & lastRow).FormulaR1C1 = "=EDATE(RC[-1],1)"
    Range("C2:C" & lastRow).Value = Range("C2:C" & lastRow).Value
End Sub

このマクロを実行すると、B列の最終行までのデータに対して1ヶ月後の日付がC列に反映されます!

 

エクセルで日付に1ヶ月足す(同日)方法【DATE関数とYEAR関数・MONTH関数・DAY関数を組みあわせ】

EDATE関数を使用せずに、DATE関数、YEAR関数、MONTH関数、DAY関数を組み合わせて日付に1ヶ月を足す方法もあります。

例えば、B2セルに2023年4月1日と入力されている場合、C2セルに以下の数式を入力します。

=DATE(YEAR(B2),MONTH(B2)+1,DAY(B2))

この数式により、C2セルには2023年5月1日と表示されます。

次に、C2セルの右下隅にあるオートフィルハンドルをダブルクリックすることで、B列全体の日付に対して1ヶ月後の日付がC列全体に反映されます。

 

処理前:

A B C
1 2023/04/01
2 2023/04/15
3 2023/04/30

処理後:

A B C
1 2023/04/01 2023/05/01
2 2023/04/15 2023/05/15
3 2023/04/30 2023/05/30

 

 VBA(マクロ)の場合

VBA(マクロ)を使用して、DATE関数、YEAR関数、MONTH関数、DAY関数を組み合わせて日付に1ヶ月を足す処理を行うこともできます。以下のコードを使用します。


Sub AddOneMonthDate()
    Dim lastRow As Long
    lastRow = Range("B" & Rows.Count).End(xlUp).Row
    
    Range("C2:C" & lastRow).FormulaR1C1 = "=DATE(YEAR(RC[-1]),MONTH(RC[-1])+1,DAY(RC[-1]))"
    Range("C2:C" & lastRow).Value = Range("C2:C" & lastRow).Value
End Sub

このマクロを実行すると、B列の最終行までのデータに対して1ヶ月後の日付がC列に反映されます。

 

まとめ エクセルで日付の足し算・1か月後を表示する方法【関数やマクロVBAも】

以上が、エクセルで日付に1ヶ月を足す方法の説明でした。

EDATE関数を使用する方法と、DATE関数、YEAR関数、MONTH関数、DAY関数を組み合わせる方法の2つを紹介しました。

また、それぞれの方法に対応するVBA(マクロ)のコードも提供しました。オートフィル機能を活用することで、効率的に日付の処理を行うことができます。