Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


35446 / 76738 ←次へ | 前へ→

【46491】Re:日付記入について教えてください
発言  takashi  - 07/2/5(月) 14:45 -

引用なし
パスワード
   ▼Kein さん:
何度もありがとうございます。
しかし今回のデータですと初入力時はM33.01.20と表示され
2回目からはH19.02.20になるのですが、そのときに
セルに戻るとデータが消えてしまい
[元々の書式(セルの色&フォントの設定)等も消える]
また再入力が必要となり ちょっと不便を感じます。
改良できますか?よろしくお願いします。

>再度テストして、こちらでも現象を確認しました。数値の入力と日付の入力の
>タイミングが問題になるようですね・・。何度か改造してみましたが、セル入力
>イベントだけではうまく回避できなかったので、セル選択イベントを追加し、
>事前に元の日付をクリアするようにしてみました。
>再度全体を書き直して、以下のようなマクロになりました。
>
>Private Sub Worksheet_Change(ByVal Target As Excel.Range)
>  Dim MyD As Integer, AdM As Integer
>  Dim CkD As Date, SetD As Date
>
>  With Target
>   If Intersect(.Cells, Range("B20:B350")) Is _
>    Nothing Then Exit Sub
>   If .Count > 1 Then Exit Sub
>   If IsEmpty(.Value) Then Exit Sub
>   If Not IsNumeric(.Value) Then Exit Sub
>   If .Value < 1 Or .Value > 31 Then Exit Sub
>   MyD = .Value
>  End With
>  If Day(Date) >= 23 Then
>   AdM = 2
>  Else
>   AdM = 1
>  End If
>  CkD = DateSerial(Year(Date), Month(Date) + AdM, 0)
>  SetD = DateSerial(Year(Date), Month(Date) + (AdM - 1), MyD)
>  If Day(CkD) < MyD Then
>   MsgBox MyD & " 日は存在しません", 48
>  Else
>   Application.EnableEvents = False
>   With Target
>     .Clear
>     .NumberFormat = "ge.mm.dd"
>     .Value = SetD
>   End With
>   Application.EnableEvents = True
>  End If
>End Sub
>
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>  With Target
>   If Intersect(.Cells, Range("B20:B350")) Is _
>    Nothing Then Exit Sub
>   If IsDate(.Value) Then .Clear
>  End With
>End Sub

0 hits

【46482】日付記入について教えてください takashi 07/2/5(月) 11:52 質問
【46483】Re:日付記入について教えてください Kein 07/2/5(月) 12:54 回答
【46484】Re:日付記入について教えてください Kein 07/2/5(月) 13:02 回答
【46486】Re:日付記入について教えてください takashi 07/2/5(月) 13:45 発言
【46488】Re:日付記入について教えてください Kein 07/2/5(月) 14:28 回答
【46491】Re:日付記入について教えてください takashi 07/2/5(月) 14:45 発言
【46493】Re:日付記入について教えてください Kein 07/2/5(月) 15:23 回答
【46494】Re:日付記入について教えてください Kein 07/2/5(月) 15:24 発言
【46501】Re:日付記入について教えてください takashi 07/2/5(月) 16:02 発言
【46506】Re:日付記入について教えてください Kein 07/2/5(月) 16:30 発言
【46507】Re:日付記入について教えてください takashi 07/2/5(月) 16:39 お礼
【46490】Re:日付記入について教えてください へっぽこ 07/2/5(月) 14:44 発言
【46499】Re:日付記入について教えてください takashi 07/2/5(月) 15:54 発言
【46503】Re:日付記入について教えてください へっぽこ 07/2/5(月) 16:07 発言
【46505】Re:日付記入について教えてください takashi 07/2/5(月) 16:19 発言
【46508】Re:日付記入について教えてください へっぽこ 07/2/5(月) 16:40 発言
【46513】Re:日付記入について教えてください takashi 07/2/5(月) 17:06 発言
【46515】Re:日付記入について教えてください へっぽこ 07/2/5(月) 17:57 発言
【46516】Re:日付記入について教えてください takashi 07/2/5(月) 18:10 お礼
【46517】Re:日付記入について教えてください へっぽこ 07/2/5(月) 18:26 発言
【46520】Re:日付記入について教えてください takashi 07/2/5(月) 20:54 発言
【46540】Re:日付記入について教えてください へっぽこ 07/2/6(火) 10:49 発言
【46545】Re:日付記入について教えてください takashi 07/2/6(火) 12:16 お礼

35446 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free