Excel VBA 年 月 日から日付を生成 クラスを利用
今回は、「年」、「月」、「日」から日付を生成するクラスを作成します。
今回使うクラスとモジュールは図1のようになります。
日付を生成するために使用するクラスは、「CreateDate」。また実際に動作させる
のは標準モジュールのMdlとします。「CreateDate」クラスの中身は、図2のように
なっています。
フィールドには、「年・月・日」を格納する、「year・month・day」を用意します。
さらに、このフィールドに値をセットするメソッド「setDate」を作成します。
「setDate」メソッドの引数に、「年・月・日」を入れると、フィールドに値が
セットされます。
そしてこのフィールドの値を用いて、メソッド「makeDate」で日付を生成します。
ここでDate型のmydate という変数を用意し、フィールド、year、month、day
を連結したものを、mydateに代入します。
mydateはDate型なので、日付でなければエラーとなります。そこでエラーとなった
場合は、エラー処理で関数の戻り値を「False」にします。
正常にmydateに代入ができれば、関数の戻り値を「mydate」とすることにより
日付が返ってきます。
CreateDateクラスの実際の利用方法は、図3となります。Mdlモジュールの中身です。
CreateDate型の変数 dateobj を宣言します。そしてCreateDate型のインスタンス
を生成します。ここで、setDateメソッドを呼び、日付をセットします。
その後、makeDateメソッドで日付を取得しています。
今回はイミディエイトウインドウに表示しています。setDateメソッドの引数には
年・月・日が「2021 , 8 , 1」と「2021 , 13 , 2」をセットしました。
結果は図4のようになります。
引数に「2021 , 8 , 1」とセットした方は、2021/08/01と日付が生成されています。
引数に「2021 , 13 , 2」とセットした方は、13月が存在しないため、False
が返ってきています。
今回はクラスモジュールを利用し、日付を生成する方法を紹介しました。
日付型変数代入のエラー処理で、日付が生成できるか判定しています。
この記事が皆様のお役に立てれば幸いです。