マクロで支払期限を入力する

マクロ講座72回 
マクロで支払期限を入力する

支払期限を入力 Excel2013 マクロ講座 72回

お支払い期限を表示する

請求書を発行するときに、起票日を入力すると、自動的にお支払期限を表示するというのは、通常は日付の関数を使って行います。
今回は、それをマクロで実行しましょう。

(サンプルファイルは、こちらから マクロ72回サンプルデータ

マクロで日付の入力

伝票などの今日の日付を入力するマクロというのを、「3行マクロ15回」で紹介しました。 関数で入力できるのに、なぜマクロを使うのかというと、マクロでは、セルに日付や時刻を入力すると、値として入力されます。 式ではなく、値ですから、表示が入力時点の値に固定されるという点において、優れていると思うからです。
支払期限を入力マクロ1
復習になりますが、発行日を入力するということは今日の日付を入力することですので、そのコードは、
Sub 請求書の日付入力()
    Range("E2").Value = Date
End Sub

マクロでお支払期限を入力

B17セルに翌月20日の日付を入力する場合、ワークシート関数を使った数式では、DATE関数を使って
=DATE(YEAR(E2),MONTH(E2)+1,20)
と、なります。
支払期限を入力マクロ2

マクロで特定の日付を作成する場合も、日付から年月日を取得しますが、 マクロではDateSerial関数を使います。 DateSerial関数は、引数に指定した年、月、日に対応する日付をシリアル値で返すVBA関数です。 支払期限を入力マクロ3
コードは次のようになります。得られる値が日付シリアルなので、書式で日付の表示形式を設定しています。
Sub 入金期限の入力1()
  With Range("B17")
    .Value = DateSerial(Year(Date), Month(Date) + 1, 20)
    .NumberFormat = "yyyy年m月d日"
    .Font.Bold = True
  End With
End Sub
マクロを実行すると入金期限が入力されます。
支払期限を入力マクロ4
請求書の発行日を入力するコードと入力期限を入力するコードを結合し、さらに表示を和暦に変更してみましょう。
Sub 発行日と入金期限の入力()
  Range("E2").Value = Format(expression:=Date, Format:="ggge年m月d日")
  With Range("B17")
    .Value = DateSerial(Year(Date), Month(Date) + 1, 20)
    .NumberFormat = "ggge年m月d日"
    .Font.Bold = True
  End With
End Sub
実行すると、発行日と入力期限の日付が和暦で表示されました。
支払期限を入力マクロ5