過去ログ

                                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")

これを、『○○歳××ヶ月』と表示させるにはどうすればよろしいでしょうか。

よろしくお願いいたします。
 ───────────────────────────────────────  ■題名 : Re:年齢計算について(エクセルの関数使用)  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 02/8/28(水) 18:04  -------------------------------------------------------------------------
   えみこさん、こんにちわ。

>これを、『○○歳××ヶ月』と表示させるにはどうすればよろしいでしょうか。

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

こんな感じです。
お望みの答えじゃなくてごめんなさい。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 4