
失礼いたします。
VBAで年齢の計算を行いたいのですがなかなかうまくいきません。
=sub
Dim 開始日付 As String
Dim 終了日付 As String
Dim 年齢 As String
開始日付 = "S54/4/1"
終了日付 = "H22/4/1"
年齢 = "=DATEDIF(開始日付,終了日付,""Y"")"
=endsub
としても、DATEDIF関数は引数をうまく処理してくれないのです。
エクセル関数を使わずに、年齢を算出するか。
エクセル関数内に引数を代入する方法があれば教えていただけないでしょうか?
No.3ベストアンサー
- 回答日時:
そういう場合は、Evaluateを使います。
Sub macro()
Dim 開始日付 As Date
Dim 終了日付 As Date
Dim 年齢 As String
開始日付 = "S54/4/1"
終了日付 = "H22/4/1"
年齢 = Application.Evaluate("=datedif(""" & Format(開始日付, "yyyy/mm/dd") _
& """,""" & Format(終了日付, "yyyy/mm/dd") & """,""y"")")
MsgBox 年齢
End Sub
No.2
- 回答日時:
VBAのは「DateDif」ではなく、「DateDiff」と記述します。
VBAのDateDiff関数のヘルプを見ておいて下さい。
Sub macro()
Dim 開始日付 As Date
Dim 終了日付 As Date
Dim 年齢 As String
開始日付 = "S54/4/1"
終了日付 = "H22/4/1"
年齢 = DateDiff("yyyy", 開始日付, 終了日付)
MsgBox 年齢
End Sub
datediffを使用すると、アクセスのdatediffのように数え年の扱いになるようです。
たとえば、
開始日付="2008/12/31"
終了日付="2009/1/1"
とすると
年齢 = DateDiff("yyyy", 開始日付, 終了日付)
この場合、年齢が1歳になります。
なのでdatediffは使いたくないのですが・・・
No.1
- 回答日時:
質問のコードでは、開始、終了日付が文字列のままなので、
DateValueで、日付シリアルに直してから計算する
それと、Dateiffの引数の使い方も間違い。
また、年齢は数値ですから、
>Dim 年齢 As String
この宣言もIntegerなどに変えるべきです。
年齢 = DateDiff("yyyy", DateValue(開始日付), DateValue(終了日付))
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
Excel→Accessへの日付データの...
-
BCPでCSV内の文字列をテーブル...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
アクセスで日付を入力すると曜...
-
ACCESS・重複データ入力をエラーに
-
ピボットテーブルの日付を週ご...
-
Accessの日付時刻型から日付、...
-
access 横型カレンダーを使用し...
-
指定日付を起点にして最新日付...
-
Accessで日付の比較がうまくい...
-
アクセス:既定値に土日含まず...
-
前のレコードの合計に現レコー...
-
Access:フォームのデータの並び順
-
アクセスで追加した項目に全て...
-
差込印刷での全角表示について...
-
Accessのテーブルのフィールド...
-
アクセスのエラー「クエリには...
-
エクセルにおける「フィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
VBA 別シートの同じ日付の欄に...
-
アクセスで日付を入力すると曜...
-
Accessの日付時刻型から日付、...
-
Excel→Accessへの日付データの...
-
アクセス:既定値に土日含まず...
-
【vba】日付の形式が勝手に変わ...
-
BCPでCSV内の文字列をテーブル...
-
指定日付を起点にして最新日付...
-
ACCESSの空白をカウントする
-
アクセスの昇順並び替えで空白...
-
エクセル-過去6カ月分の合計を...
-
sql update で 抽出条件データ...
-
アクセスで月単位の抽出
-
【エクセル】指定した日付に一...
-
アクセスのフォームで期間検索...
-
アクセス97のVBAで日付項目をヌ...
-
ピボットテーブルの日付を週ご...
おすすめ情報