マクロで支払期限を入力する
マクロ講座72回
支払期限を入力 Excel2013 マクロ講座 72回
お支払い期限を表示する
請求書を発行するときに、起票日を入力すると、自動的にお支払期限を表示するというのは、通常は日付の関数を使って行います。
今回は、それをマクロで実行しましょう。
(サンプルファイルは、こちらから マクロ72回サンプルデータ)
マクロで日付の入力
伝票などの今日の日付を入力するマクロというのを、「3行マクロ15回」で紹介しました。
関数で入力できるのに、なぜマクロを使うのかというと、マクロでは、セルに日付や時刻を入力すると、値として入力されます。
式ではなく、値ですから、表示が入力時点の値に固定されるという点において、優れていると思うからです。
復習になりますが、発行日を入力するということは今日の日付を入力することですので、そのコードは、
Sub 請求書の日付入力() Range("E2").Value = Date End Sub
マクロでお支払期限を入力
B17セルに翌月20日の日付を入力する場合、ワークシート関数を使った数式では、DATE関数を使って
=DATE(YEAR(E2),MONTH(E2)+1,20)
と、なります。
=DATE(YEAR(E2),MONTH(E2)+1,20)
と、なります。
マクロで特定の日付を作成する場合も、日付から年月日を取得しますが、
マクロではDateSerial関数を使います。 DateSerial関数は、引数に指定した年、月、日に対応する日付をシリアル値で返すVBA関数です。
コードは次のようになります。得られる値が日付シリアルなので、書式で日付の表示形式を設定しています。
Sub 入金期限の入力1() With Range("B17") .Value = DateSerial(Year(Date), Month(Date) + 1, 20) .NumberFormat = "yyyy年m月d日" .Font.Bold = True End With End Subマクロを実行すると入金期限が入力されます。
請求書の発行日を入力するコードと入力期限を入力するコードを結合し、さらに表示を和暦に変更してみましょう。
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
実行すると、発行日と入力期限の日付が和暦で表示されました。