せっかく和歴で表記するなら「令和1年」ではなく「令和元年」としてみては?

スポンサーリンク
この記事は約5分で読めます。

公的なお仕事をしている方は、日付を和歴で表記されているでしょう。

アクセスやエクセル、ワードなど、マイクロソフトオフィスは明治以降の日付であれば和歴で表すことに対応していますから、あまり不便を感じることはないでしょう。

ところが、「令和元年」は「令和1年」と表示されてしまうことに違和感を感じませんか?

え、感じません?

・・・コホン。

今日は、ACCESS限定ですが、「元年と表記したい!」方に向けて、元年表記にする方法を紹介したいと思います。

スポンサーリンク

和歴表示を設定する

本題に入る前に、ACCESSで日付を和歴で表示させる方法は分かりますか?

方法は2つあります。

書式を設定する

書式に、

ggge\年m\月d\日

と入力します。

  • ggg は、元号を漢字2文字で表示せよ、という意味です。
  • e は、和歴の年を1桁または2桁の数字で表示せよ、という意味です。
  • m は、月を1桁または2桁の数字で表示せよ、という意味です。
  • d は、日を1桁または2桁の数字で 表示せよ、という意味です。
  • 最後に、区切り記号として「年」、「月」、「日」を組み合わせて入力します。

コントロールソースで設定する

もう一つは、コントロールソースに和歴表示させた文字列を設定する方法です。DATE関数フォーマット関数を組み合わせて行います。

コントロールソースに

=Format(Date(),"ggge\年m\月d\日")

を設定します。

  • フォーマット関数の引数 ggg は、元号を漢字2文字で表示せよ、という意味です。
  • フォーマット関数の引数 e は、和歴の年を1桁または2桁の数字で表示せよ、という意味です。
  • フォーマット関数の引数 m は、月を1桁または2桁の数字で表示せよ、という意味です。
  • フォーマット関数の引数 d は日を1桁または2桁の数字で 表示せよ、という意味です。
  • 最後に、区切り記号として「年」、「月」、「日」を組み合わせて入力します。

これで、和歴表示させることができました。

では、本題の「元年」表記へまいりましょう。

スポンサーリンク

まずは結果から

先ほど2つ例を挙げましたが、後者の方法を元に、さらにIF関数を組み合わせて実現します。

フォームまたはレポートを開き、日付を表示するテキストボックスのコントロールソースに、以下の式を設定してください。

=IIf(Format(Date(),"e")=1,Format(Date(),"ggg""元年""m\月d\日"),Format(Date(),"ggge\年m\月d\日"))
スポンサーリンク

解説です

ACCESSのIF関数のおさらいです。

=IIF( 条件式を記述する , 条件式が成立するとき , 条件式が成立しなかったとき )

IF関数は、IIF と記述した後、最初のカンマまでが条件式、その次のカンマまでが条件式が成立するとき、その次に条件式が成立しなかったとき、を記述します。

「条件式」なんて小難しくいいましたが、簡単に言うと「もしこうだったらこうして、そうじゃなかったらこうする。」ことを書いています。

条件式(もしこうだったら)

最初のカンマまで。「もしこうだったら」の部分です。

Format(Date(),"e")=1

DATE関数で今日の日付を取得し、その日付をフォーマット関数で、日付を和歴の年へ変換します。その結果「1」と等しい、という条件です。

フォーマット関数の引数 e は、和歴の年を1桁または2桁の数字で表示せよ、という意味です。

今日の日付は2019年5月18日とします。この日付を和歴で表示すると令和1年5月18日。

ですので、 Format(Date(),”e”)は 1が返ってくることがわかりますか?

条件式が成立するとき(もしこうだったらの通りであれば)

Format(Date(),"ggg""元年""m\月d\日")

日付を和歴の年へ変換した結果が1であれば、「1」を「元」と表示するようにフォーマット関数を組み立てて日付を表示させています。

フォーマット関数の引数 ggg は、元号を漢字2文字で表示せよ、という意味です。 ですので、ここは「令和」が返ってきます。

元号の次は、「元年」という文字をそのまま表示させます。

フォーマット関数の引数 m は、月を1桁または2桁の数字で表示せよ、という意味です。同様に引数 d は日を1桁または2桁の数字で 表示せよ、という意味です。

m月は5月、d日は18日と表示されます。

これらをつなぎ合わせると、令和元年5月18日と表示されます。

条件式が成立しないとき(そうじゃなかったら)

Format(Date(),"ggge\年m\月d\日")

日付を和歴の年へ変換した結果が1でなければ、和歴で表示するようにフォーマット関数を組み立てて日付を表示させています。

ですので、和歴の年が1でないときは令和2年というように、年が数字で表示されるようになります。

ちなみにこの方法は、マイクロソフトオフィスが対応している元号である明治、大正、昭和、平成、令和のいずれであっても1年を「元年」と表示します。

コメントをどうぞ!