「午後3時45分」といった時刻表示をする

 時刻を午前午後12時間制で日本語表示するというものです。

書式設定により表示する場合

 昔のバージョンだとできなかったような気がしなくもないですが最近のは間違いなくできます。

f:id:accs2014:20180605233419p:plain:right:w400

 さて、まずは書式設定だけで表示するやり方を見てみます。
 例とするのはこのようなテーブルです。


f:id:accs2014:20180605233416p:plain:right:w400

 「目撃時刻」列の書式を次のように設定します。

ampmh\時n\分

※/は¥を表しています。

 マイクロソフト公式の説明によりますと「ampm」の部分は、Windows の地域設定で指定された午前午後の識別子を付加する、というはたらきをするそうです。
 それとともに時刻は12時間制の表示となります。


f:id:accs2014:20180605233413p:plain:right:w400

 確かにうまく表示されました…が、ひとつ気を付けたいのは「午前0時」「午後0時」でなく「午前12時」「午後12時」となるところです。午後はともかく午前はちょっと違和感があるかもしれません。欧米の表示に倣ったような感じですけども、仕様ですのでこれは仕方ありません。


文字列として取得する場合

 上記の例から明らかなように、Format関数の第2引数を「ampmh¥時n¥分」とすれば午前午後12時間制で日本語表示した文字列が得られます。例えば「Format(#15:45:00#,"ampmh¥時n¥分")」は「午後3時45分」となります。
 深夜0時が「午前12時」に、昼の12時が「午後12時」となるのも同じですが、文字列として取得する場合は好きなように調整ができますのでやってみます。

f:id:accs2014:20180605233410p:plain:right:w600

 同じテーブルをもとにクエリを作り、次のような2の列を設けます。
 前者は深夜0時と昼の12時をそれぞれ「午前0時」「午後12時」と表示し、後者は「午前0時」「午後0時」と表示します。お好みに使い分けてください。



午前0時表示: Replace(Format([目撃時刻],"ampmh\時n\分"),"午前12","午前0")
午前午後0時表示: Replace(Format([目撃時刻],"ampmh\時n\分"),"12時","0時")

※/は¥を表しています。


f:id:accs2014:20180605233407p:plain:right:w500

 データシートビューです。