• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAによる日付入力が)

VBAによる日付入力の問題解決方法

このQ&Aのポイント
  • VBAを使用して日付入力を行っている際に生じる問題を解決する方法を教えてください。
  • Windows 7とExcel 2010を使用しており、特定の値を入力しても表示される値が異なってしまう問題が発生しています。
  • マクロを使用してN2の値をB列に入力していますが、なぜか正しい値が表示されません。原因と解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Cells(GYOU, 2).Value = Range("N1").Value これの替わりに With Cells(GYOU, 2) .NumberFormat = Range("N1").NumberFormat .Value = Range("N1").Value End With これで”表示形式”も同じにしてみる? ⇒それでダメなら With Cells(GYOU, 2) .Value = Range("N1").Value .NumberFormat = Range("N1").NumberFormat End With 逆にしてみる。 それでダメなら・・・・????

dorasuke
質問者

お礼

御迷惑をお掛けしました。 かなりいろいろと試しましたが解決てきました。 下記のまくろで C を A に変更したらようやっとできました。 If Target.Row >= 2 And Target.Address = Cells(Rows.Count, "C").End(xlUp).Address If Target.Row >= 2 And Target.Address = Cells(Rows.Count, "A").End(xlUp).Address ありがとうございました。

dorasuke
質問者

補足

ご指導いただいたものを良く確認しながら試させていただきました。 警告が出て再度原点に戻りトライしました結果、 A列を月度別に色付けして分かり易くするための下記のマクロが影響しているようです。 入力した日付を返すようです。 どこの部分を修正すればいいか、 再度ご指導いただけないでしょうか。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 2 And Target.Address = Cells(Rows.Count, "C").End(xlUp).Address Then Target.Offset(0, -1).Value = Date End If Dim c As Integer If Target.Column <> 2 Then Exit Sub If Target.Value = "" Then c = 0 Else On Error GoTo line Select Case Month(Target.Value) Case 1: c = 46 Case 2: c = 4 Case 3: c = 39 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 43 Case 8: c = 3 Case 9: c = 44 Case 10: c = 24 Case 11: c = 40 Case 12: c = 17 End Select End If Target.Offset(0, -1).Interior.ColorIndex = c Target.Offset(0, -1).Font.ColorIndex = IIf(c = 1, 2, 0) Exit Sub line: Target.Offset(0, -1).Interior.ColorIndex = 0 Target.Offset(0, -1).Font.ColorIndex = 0 End Sub