Excelで「令和元年」を使うためのセルの書式設定・マクロ

Excelでは、ソフトの更新で「令和」への対応はされる予定です。
その対応前に「令和」を使う方法、対応後にも「令和元年」を使う方法をまとめてみました。

IMG_20190501_160000

※特急にて Pixel 3

 

Excelの「令和」対応

年の表示方法としては日本では、西暦(2019年)と和暦・元号(平成)があります。
ご存知のとおり、平成は、平成31年4月30日まで、5月1日からは新元号の令和です。
Excelそして Windows 全般で令和に順次対応してされていきます。
対応前は、このように平成31年5月1日という表示です(本来は令和1年5月1日)。

Windows の自動更新をオンにしておけば自動的に対応します。
ただm念のため Windows Update の設定を確認しておきましょう。
Windows キーを押して Windows Updateを検索して、[設定]→[ Windows Update] を開きます 。
ここで[詳細オプション]をクリックして、

[Windows の更新時に他の Microsoft製品の更新プログラムも入手します]をオンにしておくと 、Excel や Word、 パワポなどの更新プログラムも手に入れてくれます。

 

[更新プログラムのチェック]を押して最新のものがないかというのも一応確認しておきましょう。

対応後はこうなるはずです。

ただし、 Windows の更新対応後も、令和1年ではなく「令和元年」としたい場合は、別途設定が必要です。

 

そもそも元号が必要かどうかも考えてみましょう。
私自身は、元号(和暦)の表示をやめて西暦表示にしています。
令和を使ったとしても、平成〇年が今から何年前かというのがわかりにくかったり、平成31年と 令和元年(1年)が同時に存在するという複雑さもあり、西暦で統一したほうがいいかなと考えているからです。
Excel 内の表記は、もちろんファイル名も以前から成績にしています。

元号(令和・平成)を使わないという選択。言葉・資料・ファイル名 | EX-IT

ただ、そうはいってもという場合もあるかと思いますし、Excelのスキル(日付の書式)として、興味深い部分もありますので、今回の記事にしてみました。

Excelのセルの書式設定で「令和」

Excelが令和に対応する前に令和と表示する場合、またExcelが令和に対応した後も、「令和元年」と表示するには 、Excelの書式設定というものを使います。

条件付き書式というもので、設定することもできますが、シンプルにやるのであれば書式設定がいいでしょう。

日付という書式

そもそもExcelの書式というしくみについて確認しておきましょう。
Excel のセルには値(あたい)と書式という層(もう1つは数式)があります。
たとえば、次の場合は、値は、1000であり、書式は通貨というものです。

セルの書式設定を確認するには、Ctrl+1(Ctrlキーと1を同時に押す)で、セルの書式設定ダイアログボックスを開きましょう。
このように表示形式が「通貨」になっていることがわかります。

 

セルの書式設定の[表示形式]の[分類]を[標準]に変えると、1000という表示に戻ります。

 

試しにセルの書式設定の[分類]を[日付]にしてみると明治35年9月26日になり、


[カレンダーの種類]を[西暦]にすれば、1902年9月26日になります。


これは1000いう値を[日付]という書式で表示したもので、その意味は1900年1月1日から数えて1000日目ということです 。

1を入力してセルの書式設定で[日付]にすると1900年1月1日になることがわかります。

今日の日付(記事執筆時は2019年5月2日)を入力して、セルの書式設定(Ctrl+1)を確認してみましょう。
今日の日付を入力するには、Ctrl+;(セミコロン)です。
この方法で入力した場合、西暦で2019/5/2と入ります。
セルの書式設定では[表示形式]の[分類]が[日付]です。

表示形式を標準にしてみると、43587となります。
これが値で、2019年5月2日は、1900年1月1日から43587日目ということです。

そしてこのセルの書式設定は、自由に変更することができます。
それが[分類]の[ユーザー定義]という項目です。
[分類]で日付をいったん選択してから[ユーザー定義]を選択してみましょう。
この[ユーザー定義]は直前に選択していた書式の[分類]を表示するという特性があります。

ユーザー定義を見てみると yyyy/m/d となっています。
[表示形式]の[分類]が[ユーザー定義]になっていれば、この部分を自由に編集できるのです。


2019ではなく19だけ表示したいときは yyyy ではなくyyへ。


5月を0付き(05月)にしたいときは mm、 日付を0付き数字にしたいときはdd。


スラッシュではなくピリオドにしたいときはスラッシュをピリオドへ。


よく使い、便利なのが曜日を入れる書式。
aaaと入れれば、曜日が表示されます。
()をいれるなら、(aaa)。
このように変えても、値はあくまで43587、書式が変わるだけです。

かっこの種類を変えることだってできます。


2019年5月2日と表示したいときはスラッシュを年、月、日に変えましょう。
この表示でもうまくいきますが正しく理解するためにも文字を入れるときはダブルコーテーションでんでおきたいところです。


文字列はダブルコーテーションで囲むというのが Excel に限らずプログラミングその他 IT 上では共通認識だからです。

日付を表示せずに、年と月だけ表示する形式も私はよく使います。


年だけ表示させて年度をつけることもでき、こうしておくと数式で、1年足す、1年引くということもできます。

支払期限という単語をつけるパターン。
こういった書式設定もできます。

和暦(元号)だとどうなるかやってみましょう。
yyyy を消してまずgを入れます。
サンプルのところを見ると H と平成の意味の記号が入ります。
(入力時の元号になるため)
gが1つだと H という表示です。


ggと入れると、「平」になり、

gggで、「平成」です。


和暦の場合の年を表示するのには、eを入れます。
この記事を書いているとき点では、Excelがまだ平成にしか対応してませんので、平成31年5月2日という表示です。
対応後は、令和1年5月2日になります 。

ただし前述のとおり令和1年となってしまいあすので、「令和元年」と、どうしても表示したいときには、セルの書式設定でユーザー定義の設定を変えましょう。
(R1.5.1やR1/5/1といった書式に変えたいときは、年、月、日のところを変更してください)

ただし、Excelが令和に対応する前と、対応した後で、設定が変わってきます。

〇Excelが令和対応後

次の書式を、[セルの書式設定]の[表示形式]の[分類]→[ユーザー定義]を選択し、[種類]にコピペします。

 

[<=43585]ggge”年”m”月”d”日”;[>=43831]ggge”年”m”月”d”日”;ggg”元年”m”月”d”日”

 

 


これは、条件によって 書式設定しているものです。

Excelが令和対応後は、
・2019年4月30日より前なら、明治、大正、昭和、平成
・2019年5月1日より後なら、令和
となります。
この前提で考えると、
条件の1つめは、「43585、つまり2019年4月30日より前なら、ggge年、つまり元号〇年〇月〇日と表示(元号は明治、大正、昭和、平成]
条件の2つ目は、「43831、つまり2020年1月1日より後なら、令和〇年〇月〇日と表示」。
そうでなければ、つまり、2019年5月1日~2019年12月31日は、「令和元年〇月〇日」となります。

〇Excelが令和対応前

Excelが令和に対応する前は、上記の条件だと、こうなってしまいます。

令和に対応していないので、「平成」元年となってしまうのです。
これを防ぐなら、次の書式にしましょう。
これなら、Excelが令和対応後にも使えます。

 

[<=43585]ggge”年”m”月”d”日”;[>=43831]ggge”年”m”月”d”日”;”令和元年”m”月”d”日”

 

ただし、令和2年以降で使うときは、注意しなければいけません。。
このままだと、令和2年が平成32年になってしまいます。
ただ、この記事執筆時からそれほど遠くない日にExcelが令和対応する予定ですので、更新すれば、この書式で、令和2年以降も使えます。

 

Excelマクロ(VBA)で「令和」

Excelマクロで、「令和」に対応する方法もあります。

「選択しているセルの値が43835(2019年5月1日)以上で、43830(2019年12月31日)以下であれば、選択しているセルの書式を令和元年〇月〇日にする」
というプログラムです。

Sub reiwa_gan()

  If Selection.Value2 >= 43586 And Selection.Value2 <= 43830 Then

    Selection.NumberFormatLocal = """令和元年""m""月""d""日"""

  End If

End Sub

選択している値が、「Selection.Value2」
Value2をつけることで、日付を値(43586)で認識できます。
IFで、43586(2019年5月1日)以上43830(2019年12月31日)以下、つまり令和元年の範囲を条件として指定し、もし条件にあてはまれば、「令和元年〇月〇日」と書式にするというしくみです。

選択しているセルの書式は、「 Selection.NumberFormatLocal 」で指定しています。

このマクロが入ったExcelファイルを開き、変更したいファイルのセルを選択して、マクロを実行すれば、令和元年の書式に変わるプログラムです。

サンプルファイルでは、Ctrl+Shift+mを押せば、マクロを実行できるように設定しました。

1 マクロファイルを開く
2 令和元年の書式にしたい該当のファイルを開く

3 書式を「令和元年」にしたいセルを選択して、Ctrl+Shift+m

注意点は次のとおりです。
・マクロファイルを開いた後、マクロを有効にしてください
・マクロを実行するとCtrl+Zで元に戻せません。
・〇月〇日の書式を変更したいときは、プログラムを変更する必要があります。
・Excelが令和対応した後に、Excelを更新しておかないと、令和2年以降は正しく表示できません。
(令和2年以降にも対応するようにできますが、これはあくまで一時的な処理なので)
・複数セルを選択していると、エラーになります。

複数セルを選択し、選択したすべての書式を変更するならこのプログラムです。
令和元年にしたいところ以外も選択できたほうが便利なので、その処理も入れました。。

Sub reiwa_gan_select()

    Dim c
    For Each c In Selection
        If c.Value2 >= 43586 And c.Value2 <= 48830 Then
        
            c.NumberFormatLocal = """令和元年""m""月""d""日"""
        
        Else
        
            c.NumberFormatLocal = "ggge""年""m""月""d""日"""
        
        End If
    
    Next

End Sub

たとえば、このように選択し、プログラムを実行すれば、


こうなります。

元号がいい、令和元年がいい、必要だという方は、使ってみていただければ。

サンプルファイルにどちらのプログラムも入っています。

EX-ITサンプル 令和マクロ.xlsm

これを機会に、Excelの日付の書式についてもいろいろと試して抑えておきましょう。

 

 

 



■編集後記

昨日は、大分(妻の実家)から宮崎(私の実家)へ移動。
近いようで、電車で3時間ちょっとかかります。

■昨日の「1日1新」

大分→宮崎 グリーン車

■昨日の娘日記

宮崎の実家ではすぐになじんでいました。
おじいちゃんの区別がつかず(大分の妻のおとうさんと、うちの父と)、「ちょっと違う」と戸惑っていましたが。
メルちゃん(人形)をもらって、大喜びでした。