
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
>関数(DATEDIF)を利用してのやりかたはわかるのですが
DATEDIF は、Lotus 1-2-3の関数ですから、以下のようにしないとVBAでは求められないはずです。
VBA.DateDiff を使って出来ないことはないのですが、かなりややこしくなるような気がします。
誕生日というのは、今は、満で数えますから、誕生日を過ぎないと、1歳にならないのですね。つまり、2005/11/1 の赤ちゃんは、明日(11/2)にならないと、1歳にはならないわけです。
'ユーザー定義関数-標準モジュール
Function mDATEDIF(日付 As Date)
Dim Fdate As Long
Dim Ldate As Long
Fdate = CLng(日付)
Ldate = CLng(Date) - 1 '満年齢を出す場合
mDATEDIF = Evaluate("DATEDIF(" & Fdate & "," & Ldate & ", ""y"")")
End Function
'イベントドリブン型マクロ-シートモジュール
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Fdate As Long
Dim Ldate As Long
If Target.Address(0, 0) <> "A1" Then Exit Sub
If IsDate(Target) = False Then Exit Sub
Application.EnableEvents = False
Fdate = CLng(Target.Value)
Ldate = CLng(Date) - 1 '満年齢を出す場合
Range("B1").Value = Evaluate("DATEDIF(" & Fdate & "," & Ldate & ", ""y"")")
Application.EnableEvents = True
End Sub
No.1
- 回答日時:
見出しを右クリックして「コードの表示」で開いた場所に下記のコードを貼り付けてください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If IsDate(Target.Value) = True Then
Target.Offset(0, 1) = DateDiff("yyyy", Target.Value, Date)
End If
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) 現時点の年齢を算出して、その年齢と一致したセルを色付けしたい。 4 2022/06/23 17:49
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/20 09:22
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) 時間差を求めるマクロコードを教えてください。 4 2022/05/17 18:22
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- Excel(エクセル) Excelの関数 5 2023/07/07 05:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のシートのクリ...
-
Excelのシート上のShapeにイベ...
-
Excel VBAでのWorksheet_Change...
-
エクセル シート内の一番下のセ...
-
エクセルファイルを開いた回数...
-
【エクセル】フリーワード検索...
-
エクセル2003 並び替えとマクロ
-
マクロ1があります。 A1のセル...
-
長い時間かかるマクロが実行中...
-
Excelで数字を入れたら対応する...
-
【エクセル】「実行時エラー’10...
-
エクセルのワークシート(テン...
-
指定値をマクロで検索&シート移動
-
「元に戻す」キーが働かない
-
前月分を次月シートに繰越でき...
-
【エクセル マクロ】【初質問】...
-
ピポットテーブルをマクロ登録
-
エクセルのセルの塗りつぶしシ...
-
Excel VBA で行列計算をさせた...
-
エクセルのマクロ実行後にカー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
マクロ1があります。 A1のセル...
-
エクセルで複数のシートのクリ...
-
Excelのシート上のShapeにイベ...
-
Excelで数字を入れたら対応する...
-
【エクセル】フリーワード検索...
-
エクセルで特定の行だけ行削除...
-
エクセルファイルを開いた回数...
-
エクセル シート内の一番下のセ...
-
EXCELのダイアログシートって、...
-
長い時間かかるマクロが実行中...
-
【エクセル】「実行時エラー’10...
-
指定値をマクロで検索&シート移動
-
エクセル:セル内の文字列の最...
-
excel定数の違いについて。xlAu...
-
Excelにて、同じ画像を複数のセ...
-
Excelマクロでブック全体を検索...
-
エクセルでマクロを作りすぎた...
-
エクセルVBAで実行中画面を...
-
シートではなくBOOK間で重複し...
おすすめ情報