[[20190313103245]] 『日付の入力で』(笹爺) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付の入力で』(笹爺)

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

数式を書かずに素直に13と入力して、セルの書式の方で「daaa」としておくとか?
(???) 2019/03/13(水) 11:24

あ、当月とは限らないので、これでは駄目ですね。失礼しました。 そうなると、マクロですかねぇ?
(???) 2019/03/13(水) 11:26

 ちなみにマクロならシートモジュールに

 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

2019年ではなく2019
3月ではなく3と入力すれば問題ないと思いますよ。
どうしても年と月を表示したい場合には書式設定で表示させるのがよいかと
(通行人) 2019/03/13(水) 13:20

 さきほど出鱈目なこと書いてしまいました。すみません。

 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.