あなたは未だに「社内で新元号に対応していない大企業がある」と言ったら信じるだろうか?2ヶ月経過してるのに・・・・
中小企業などで資金力がない為、未だ古いExcelを使わざるを得ないからといって使い続けている場合でも、令和の対応は必要になります。役所に書類提出もあるのに未だにMicrosoftが公式に対応済みのパッチが配信されていないって・・・
という事で、西暦を和暦に変換する令和対応関数を作りました。非常に単純なコードですが書式設定からではなく関数で対応というのが味噌です。アドイン形式ですが、下記コードを標準モジュールとして取り込めば、外部に渡すExcelファイルであっても、使えるので使い分けをしてみてください。
今回用意したアドインファイル
reiwa.xlamというアドイン形式のファイルです。office2007以上で利用可能です(2019は対応パッチ当ててあれば不要だと思いますが、相手が2019ではない事も考えた場合、利用価値はあるんじゃないかなぁと)。
また、旧式の2003以前のExcelの場合は、xla形式で保存し直したり、標準モジュールでVBAに貼り付ければ多分動くと思います。
アドインファイルのインストール方法
アドイン形式であるため、そのままダブルクリックしても使えません。以下の手順で導入が必要です。
開発タブの表示
アドインの導入は開発タブが表示されていないとできないのですが、最近のExcelはデフォルトで非表示だったりします。ので、以下の手順でまずはソレを表示しましょう。
- Excelを起動したら、ファイル⇒オプションを開く
- リボンのユーザ設定を開きます。
- 右側のパネルのリボンのユーザ設定の中にある「開発」のチェックが外れているので、チェックを入れてあげる
- OKをクリックすると、リボンに「開発」タブが表示されるようになります。
図:開発にチェックを入れてあげる
アドインの追加
開発タブが表示されるようになったら、次にダウンロードした令和対応アドインを追加してあげます。予め、ファイルをダウンロードして、reiwa.xlamをドキュメントフォルダの直下にでも入れておきましょう。
- 開発タブをクリックする
- Excelアドインをクリックする
- 参照をクリックする
- なぜかそのままだとreiwa.xlamがリストに表示されないので、右下の部分を「すべてのファイル」にして、おきましょう。
- ドキュメントフォルダの直下に移動し、準備しておいたreiwa.xlamを指定し、OKをクリックします。
- アドインが追加されたので、OKをクリックして閉じます。
図:Reiwaという無骨なアドインが追加される
コードと使い方
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
'西暦を和暦に変換する関数 Public Function rekiconv(seireki As Date) As String '変数を用意 Dim reiwa As Boolean Dim yeardiff As Integer '引数の日付が2019/5/1より前の日付かどうか判定する If seireki < "2019/5/1" Then reiwa = False Else reiwa = True End If 'reiwaフラグにしたがって処理を進める If reiwa = True Then '令和なので別処理 If Year(seireki) = 2019 Then rekiconv = Format(seireki, "令和元年m月d日") Else '2年目以降の処理 yeardiff = Year(seireki) - 2019 + 1 '値を返す rekiconv = Format(seireki, "令和" & yeardiff & "年m月d日") End If Else '従来の和暦変換処理で返す rekiconv = Format(seireki, "ggge年m月d日") End If End Function |
手抜きっぽく見えますが、2019年5月1日より前の場合は、従来の和暦変換コードを利用し、ソレ以降だけを元年対応などをしているだけの手軽な関数です。新しいexcelは既に令和対応パッチが配信されていますが、古いExcelはパッチは配信されないので、旧式のExcelを使わざるを得ない現場でも有効です。
上記のコードはアドインのコードと同じですが、アドインの場合「そのPC」でしか動作しません。外部にファイルを渡してしまうと、存在しない関数で処理をしていることになるのでエラーになってしまいます。この場合、そのファイルに標準モジュールとして上記のコードをコピペすれば、外部に渡しても関数は動作します。基本、外部にはPDFで渡してあげるべきですが、そうも行かないケースも多々あるので、其の辺りは柔軟に対応しましょう。
使い方
使い方は非常に簡単です。以下のようにrekiconvという関数が追加されるので、引数に「yyyy/mm/dd」形式の西暦を渡してあげれば、変換し和暦で返してくれます。もちろん、セルの参照でもOKです。
1 2 3 4 |
//和暦に変換する令和対応関数 =rekiconv("2019/6/15") =rekiconv(A2) |
- 2019/5/1以降は「令和元年◎月✕日」で表示されます。
- 2020/1/1以降は「令和2年◎月✕日」で表示されます。
- 2019/4/30以前は、「元号名◎月✕日」で表示されます。
和暦を西暦に変換する機能はついていません。
図:Excel2003で動かしてみた