ここから本文です

エクセル2010 VbA

アバター

ID非公開さん

2019/4/511:40:47

エクセル2010 VbA

年齢計算の式の改修を行っているのですが、dateif関数は、令和に対応していないため、yearfrac関数を使用したいと考えたのですが、うまくいきません。年齢計算の式をどんな形で組んだらいいでしょうか?

If 画面.元号combo.text =“令和” then
年齢=YearFranc(生年月日,Date,1)
Else
Dateif •••
Endif

閲覧数:
239
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tai********さん

2019/4/517:26:48

例えばセルに
昭和80年1月1日
と打つと
平成17年1月1日

に自動変換してくれますね。なので、令和2年なら平成32年、令和10年なら平成40年でも大丈夫です。
DateValue関数にかければ日付に直してくれます。

ただVBAのDateDiff関数は年齢計算には使えないのでワークシート関数を使います。


Sub test()
Dim d1 As Date, d2 As Date, y As Long, m As Long, d As Long
d1 = DateAdd("yyyy", 30, DateValue(Replace(Range("A1"), "令和", "平成")))
d2 = DateAdd("yyyy", 30, DateValue(Replace(ComboBox1.Value, "令和", "平成")))
y = Evaluate("=datedif(""" & d2 & """,""" & d1 & """,""y"")")
m = Evaluate("=datedif(""" & d2 & """,""" & d1 & """,""ym"")")
d = Evaluate("=datedif(""" & d2 & """,""" & d1 & """,""md"")")
Cells(4, 1) = y & "年" & m & "月" & d & "日"
End Sub


でも、もうじき変換しなくても済みますよ。

例えばセルに
昭和80年1月1日
と打つと
平成17年1月1日...

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

all********さん

2019/4/511:55:38

もう少し待てば
Windows Office 新元号にアップしますが

でも
>dateif関数は、令和に対応していないため
この意味が 西暦日付を表示形式和暦にしているだけなのに

VBA判りませんが
文字列和暦日付での計算???
でもこれ関数で日付に出来るのに

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる