|    | 
     ▼Kein さん: 
>テストしてみたら、だいぶ間違えてましたね。 
>すいません、こっちでやってみて下さい。 
 
早速ありがとうございます。 
書式が標準/G時は初回入力ではH19.02.20と表示しますが 
一度消して2回目同じように入力を実行すると 
M33.01.20と表示されてしまいます。 
下記をどこかに入れたら修正出来るかと思い 
やってみたのですが???ダメ 
Target.NumberFormatLocal = "G/標準" 
2度目入れ直しの場合の対処出来ますか。 
 
  If Day(Date) >= 23 Then 
   AdM = 2 
  Else 
   AdM = 1 
  End If 
  Application.EnableEvents = False 
 
  If Day(DateSerial(Year(Date), Month(Date) + AdM, 0)) < MyD Then 
   MsgBox MyD & " 日は存在しません", 48 
  Else 
   Target.Value = _ 
   DateSerial(Year(Date), Month(Date) + (AdM - 1), MyD) 
   Target.NumberFormat = "ge.mm.dd "’←ここ修正しました。★ 
  End If 
  Application.EnableEvents = True 
End Sub 
 
> 
>Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
>  Dim MyD As Integer, AdM As Integer 
>  
>  If Intersect(Target, Range("B20:B350")) Is _ 
>   Nothing Then Exit Sub 
>  With Target 
>   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 
>  Application.EnableEvents = False 
>  If Day(DateSerial(Year(Date), Month(Date) + AdM, 0)) < MyD Then 
>   MsgBox MyD & " 日は存在しません", 48 
>  Else 
>   Target.Value = _ 
>   DateSerial(Year(Date), Month(Date) + (AdM - 1), MyD) 
>   Target.NumberFormat = "yyyy/m/d" 
>  End If 
>  Application.EnableEvents = True 
>End Sub 
 
 | 
     
    
   |