VBA 不完全な生年月日を統一書式に変更する

同じ生年月日がこのようにバラバラに収納されているという例

  • 昭和 06.07.11
  • 06.07.11(昭和欠落)
  • 6.7.11(数表記異なる)
  • 6. 7.11(間に空白)
  • 6.7.(日が欠落パターンA)
  • 06.07.(日が欠落パターンB)
  • 6.7(日が欠落パターンC)
  • 06.07(日が欠落パターンD)
  • 6. 7(日が欠落パターンE)

上記の半角の例に、全角で表示されているパターンが加わる
ということで、以下の手順で年月日を拾い出す手順を考える元になる年月日部分の文字列を、ymdとすると

  1. 全角数字日付は、Asc(ymd)で半角に
  2. 両側に空白がある可能性もあるのでTrim(ymd)で取り除く
  3. ymdの文字数とピリオドの位置を拾い出す
  4. ピリオドの位置、ymdの長さを元に、パターンを考え、ymdから y、m、dを変数(数値)に格納
  5. 元号は昭和だけでないので、西暦年とするため、判定を加えyに必要な数値を加える
  6. y*10000+m*100+dで生年月日を表す数値ができあがる(文字列化も簡単)

というようなことで良いのではないかと妄想中です。パターンに応じた処理が面倒です。
[追記]日を0にすると、前月の末日を指すようになるみたいです。日が欠落した場合の処理はもう少し考える必要がありそうかと…。