DateSerialがナイことに、さっき気がついた・・・
ナニをイマサラと云われそうだが、ソレもソノ筈、
Public Function iDateSerial(Optional ByVal iYear As Variant = "", _ Optional ByVal iMonth As Variant = "", _ Optional ByVal iDay As Variant = "", _ Optional ByVal iFormat As Variant = "") As Variant On Error Resume Next Application.Volatile Dim Result Result = DateSerial(iYear, iMonth, iDay) If IsError(Result) Then Result = Now() End If If iFormat = "" Then Else Result = Format(Result, iFormat) End If iDateSerial = Result End Function
|
こんなのツクってアドインとして組み込んで使っていたので、そのコトを忘れていた(;゚д゚)ァ....
Worksheet上で
=iDateSerial(2009,3,0,"yyyy/mm/dd")
|
こう使う。
当然、引数はセル参照を指定できるので、当時は それなりに使えたよ。
ちなみに、今日追加したのは、文字列返しの部分と、不正入力対応・・・
デモ、ホントに使うのなら、不正値での動作は、エラーを返すほうがイイのかも知れない・・・
そうしたい場合は、※印の行を消して使ってくださいなっと♪
P.S. コッチのほうが無難かも・・・
Public Function iDateSerial(Optional ByVal iYear As Variant = "", _ Optional ByVal iMonth As Variant = "", _ Optional ByVal iDay As Variant = "", _ Optional ByVal iFormat As Variant = "") As Variant On Error Resume Next Application.Volatile Dim Result If iYear="" And iMonth="" And iDay="" Then Result = Date() Else Result = DateSerial(iYear, iMonth, iDay) End If If iFormat = "" Then Else Result = Format(Result, iFormat) End If iDateSerial = Result End Function
|
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。