Page 4 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼年齢計算について えみこ 02/8/28(水) 16:50 ┗Re:年齢計算について(エクセルの関数使用) りん 02/8/28(水) 18:04 ─────────────────────────────────────── ■題名 : 年齢計算について ■名前 : えみこ ■日付 : 02/8/28(水) 16:50 -------------------------------------------------------------------------
下記の方法で年齢計算のマクロを作成しています。 .Text_Age = Format(Val(Date - DateValue(Mid(RecSet("BIRTH"), 1, 4) & "/" & Mid(RecSet("BIRTH"), 5, 2) & "/" & Mid(RecSet("BIRTH"), 7, 2))) / 365.25, "##0") これを、『○○歳××ヶ月』と表示させるにはどうすればよろしいでしょうか。 よろしくお願いいたします。 |
えみこさん、こんにちわ。 >これを、『○○歳××ヶ月』と表示させるにはどうすればよろしいでしょうか。 VBAに組み込まれていないワークシート関数をEvaluateで使用しました。 Sub test() Dim dc As String * 1 Dim Ds1$, Ds2$, Arg1$, YY, MM dc = Chr(34) '『"』 Ds1$ = Format(Date, "YYYY/MM/DD") Ds2$ = Mid(RecSet("BIRTH"), 1, 4) & "/" _ & Mid(RecSet("BIRTH"), 5, 2) & "/" _ & Mid(RecSet("BIRTH"), 7, 2) ' Arg1$ = "DATEDIF(" + dc + Ds2$ + dc + "," + dc + Ds1$ + dc + "," + dc YY = Application.Evaluate(Arg1$ + "Y" + dc + ")") '満年齢計算 If TypeName(YY) = "Error" Then MsgBox Ds2$, vbExclamation, "異常値" Else MM = Application.Evaluate(Arg1$ + "YM" + dc + ")") MsgBox YY & "才" & MM & "ヶ月" End If End Sub Function RecSet(s1 As String) As String 'データのもとがわからないので、テスト用に作成 RecSet = "19991231" '適当な日付 End Function こんな感じです。 お望みの答えじゃなくてごめんなさい。 |