
失礼いたします。
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を探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
Accessのクエリ / 曜日の表示...
-
BCPでCSV内の文字列をテーブル...
-
アクセスで日付を入力すると曜...
-
Excel→Accessへの日付データの...
-
VBA 別シートの同じ日付の欄に...
-
アクセス:既定値に土日含まず...
-
sql update で 抽出条件データ...
-
クロス集計のユニオンクエリー...
-
アクセスで月単位の抽出
-
Accessの日付時刻型から日付、...
-
アクセスのフォームで期間検索...
-
前のレコードの合計に現レコー...
-
SQLサーバにある日付型のデータ...
-
Access2016、VBA、家計簿で各出費...
-
日付/時刻型フィールドで時刻デ...
-
アクセスの昇順並び替えで空白...
-
ACCESSの空白をカウントする
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
VBA 別シートの同じ日付の欄に...
-
アクセスで日付を入力すると曜...
-
Excel→Accessへの日付データの...
-
Accessの日付時刻型から日付、...
-
アクセス:既定値に土日含まず...
-
【vba】日付の形式が勝手に変わ...
-
BCPでCSV内の文字列をテーブル...
-
指定日付を起点にして最新日付...
-
ACCESSの空白をカウントする
-
アクセスの昇順並び替えで空白...
-
エクセル-過去6カ月分の合計を...
-
sql update で 抽出条件データ...
-
アクセスで月単位の抽出
-
【エクセル】指定した日付に一...
-
アクセスのフォームで期間検索...
-
アクセス97のVBAで日付項目をヌ...
-
ピボットテーブルの日付を週ご...
おすすめ情報