• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セルに文字を入力したら今日の日付が)

セルに文字を入力したら今日の日付が

このQ&Aのポイント
  • セルに文字を入力した際に、日付が自動的に入力されるマクロを設定しています。
  • ただし、現在のマクロは2行目のみに適用されており、他の行には適用されません。
  • 最終行までマクロを適用する方法を教えていただきたいです。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

参考に 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 End Sub

dorasuke
質問者

お礼

早速ご回答いただいたマクロで試しました。 有難うございました。 うまくいきました。 今後とも宜しく御願いいたします。

dorasuke
質問者

補足

色々試行錯誤した結果、2つのマクロをまとめて下記のようにしたら何とかなりました。 これもひとえにご指導いただいた結果です。 下記にその結果をご報告させてといただきます。 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

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>この場合ですと C4が最終行です。 >次はC5に入力の予定になります。 2行目以降でC列で上のセルが空白で無い場合、日付を記入 Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Row = 1 Or .Column <> 3 Then Exit Sub If .Offset(-1).Value = "" Then Exit Sub Target.Offset(0, -1).Value = Date End With End Sub

dorasuke
質問者

お礼

回答No2の所に俺をしなければならなかったのですがここにさせていただきます。 これもご指導いただいた結果が実を結ぶことができました。 ご指導に感謝しています。 有難うございました。 今後ともご指導の程宜しく御願いします。

dorasuke
質問者

補足

※「コンバイルエラー 名前が適切ではありません Worksheet_Change」 OK ヘルプ が表示されます。 下記のマクロがすでに A列のセルに月度別に色が付く設定をしています。 例 A2 =B2 A3 =B3 と数式を入れています。 Private Sub Worksheet_Change(ByVal Target As Range) ※左側が反転しています。 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 お手数ですがどういうようにすればいいか誠に恐れ入りますが ご指導いただけませんでしょうか。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

こんにちは  この場合処理を終える「データの終わりを決める条件は?」を提示された方が回答が付きやすいと思います。  何も考えないと65535回判定を繰返す反応の遅いプログラムになってしまったり、空のセルで終わりとしたら飛び飛びのデータで空セルで処理が止まってしまい役に立たないプログラムになってしまう恐れがありますので。

dorasuke
質問者

補足

早速のご協力をいただき有難うございます。 C2 に入力されたら B2 ※ C列は(顧客IDで 例:001) C3 に入力されたら B3 C4 に入力されたら B4 という具合です。 この場合ですと C4が最終行です。 次はC5に入力の予定になります。 説明不足で済みません。 宜しく御願いします。