[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付の入力で』(笹爺)
D2のセルに2019年 A6のセルに3月と、入れています。
A8のセルに日にちを入れるのですが 13日(今日)なら13だけを打ち込めば13水となるようにしたいのです。 A8にどのような式を書けばいいのでしょうか?
よろしくお願いします。
笹爺
< 使用 Excel:Excel2003、使用 OS:Windows10 >
別セルなら =IF(A8="","",TEXT(DATE(D2,A6,A8),"daaa"))
のような式で可能ですが、別セルを使わず同じセルに表示させたい場合は多分マクロになります。 (bi) 2019/03/13(水) 10:52
ちなみにマクロならシートモジュールに
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$8" Then Exit Sub
If Range("A8") = "" Then Exit Sub
Application.EnableEvents = False
Range("A8") = Format(DateSerial(Range("D2"), Range("A6"), Range("A8")), "daaa")
Application.EnableEvents = True
End Sub (bi) 2019/03/13(水) 11:51
biさん ありがとうございます。 勉強して頑張ります。
笹爺
(笹爺) 2019/03/13(水) 12:02
biさん 書いてもらったマクロを張り付けて実行しましたが 日付けは13金になってしまいます。 数式バーでは、1900/3/13になっています。 どうすればいいでしょうか?
(笹爺) 2019/03/13(水) 12:56
D2セルに年、A6セルに月が入っていなければそのような結果になりますが。 (bi) 2019/03/13(水) 13:09
D2 A6に 2019年 3月としていますが、それだけではダメなんでしょうか? (笹爺) 2019/03/13(水) 13:18
さきほど出鱈目なこと書いてしまいました。すみません。
D2セルは2019とだけ入力して表示形式で 0"年" A6セルは3とだけ入力して表示形式で 0"月"
にしてください。 (bi) 2019/03/13(水) 13:21
>D2のセルに2019年 A6のセルに3月 これで試してください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myYear As Long, myMonth As Long, myDay As Long
If Intersect(Target, Range("d2,a6,a8")) Is Nothing Then Exit Sub
myYear = Val(Range("d2").Value)
myMonth = Val(Range("a6").Value)
myDay = Val(Range("a8").Value)
If (myYear = 0) + (myMonth = 0) + (myDay = 0) Then Exit Sub
Application.EnableEvents = False
Range("a8").Value = Format(DateSerial(myYear, myMonth, myDay), "daaa")
Application.EnableEvents = True
End Sub
(seiya) 2019/03/13(水) 13:24
seiyaさんありがとうございます。 ちゃんと表示はできました。 しかしA9からA100まで日にちが入る予定なんです。 よろしくお願いします。 (笹爺) 2019/03/13(水) 13:45
そうなってくると、ちょっとややこしくなってきますね... 年。又は月を変更したときのA8:A100の値はどうしますか? (seiya) 2019/03/13(水) 13:48
ややこしいですか・・・ やっぱり 3/13と入力したほうがいいですかね? 時間を取らせてしまってもうしわけないです。 ありがとうございました。 (笹爺) 2019/03/13(水) 13:53
ややこしい、という意味は
年、又は月が変更された時点で、A8:A100に既に入力されている数値をどうするかの説明が無い
ということです。 (seiya) 2019/03/13(水) 13:57
seiyaさん お世話さんです。 月が変わればシートをコピーしようと思っています。 可能でありましたら、よろしくお願いします。 (笹爺) 2019/03/13(水) 14:57
D2, A6には必ず年・月が入力されている前提で
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myYear As Long, myMonth As Long, r As Range
If Intersect(Target, Range("a8:a100")) Is Nothing Then Exit Sub
myYear = Val(Range("d2").Value)
myMonth = Val(Range("a6").Value)
Application.EnableEvents = False
For Each r In Intersect(Target, Range("a8:a100"))
If r.Value <> "" Then
r.Value = Format(DateSerial(myYear, myMonth, Val(r.Value)), "daaa")
End If
Next
Application.EnableEvents = True
End Sub
(seiya) 2019/03/13(水) 15:39
seiyaさん 本当にありがとうございます。 理想の域を超えるような事にまでしていただいてありがとうございます。 感謝 感謝です。 また、お尋ねすることがあると思いますがその節にもどうぞよろしくお願いします。 今日は本当にありがとうございました。 (笹爺) 2019/03/13(水) 17:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.