読者です 読者をやめる 読者になる 読者になる

役に立つか?VBAメモ

仕事で使ったVBAをメモっとく

西暦打つの面倒くさい

Excel VBA

 

エクセルで1月1日入力すると今年の1月1日になるから - 役に立つか?VBAメモ

 

 を書いたが、12月に入ったら入力する日付がみんな2015年ばかりになった。

もう".."さえ打つのが面倒になってきたので、VBAを書き換えた。

 

TextBox1に1/10と入力したとして、
Sheet1のセルA1(書式設定”日付”)に日付を入れたい。の場合。


If CDate(TextBox1.Value) < (Date - 240) Then
Sheets("Sheet1").Range("A1").Value = DateAdd("yyyy", 1, CDate(TextBox1.Value))
Else
Sheets("Sheet1").Range("A1").Value = TextBox1.Value
End If

CDateでTextBox1の値を日付に変換(2014/1/10になる。シリアル値で41649)したものより、
今日(2014/12/1とする。シリアル値で41974)より240日前(シリアル値41974-240)の方の値が大きかったら、
A1に入れる値は、DateAddを使い日付に変換したTextBox1値の、年のところに1を足した値(2014+1/1/10)にする。
違う場合はTextBox1値をA1にそのまま入れる。

-240日は、過去の日付は一切入れないなら要らないし、用途次第で変えれば良い。

 

すごく楽になったよ。

以上