サンプルファイル
*C列に文字を入力したら、「連番」「日付」を自動的に入力します。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRow As Long
Dim MaxNo As Long
'現在の行
myRow = Target.Row
'現在の最大値を「WorksheetFunction.Max」で取得し、「1」を足す
MaxNo = Application.WorksheetFunction.Max(Range("A5:A65536")) + 1
'A列が空白、C列が空白でない、5行目以上のとき
'A列 = 連番 / C列 = データ / 5行目 = データの開始位置
If Cells(myRow, "A") = "" And Cells(myRow, "C") <> "" And myRow >= 5 Then
'列の監視
Select Case Target.Column
'列番号が「3」つまり「C列」のとき
'列を指定しておかないと無限ループに陥ることがある。
Case 3
Cells(myRow, "B").NumberFormatLocal = "yy/mm/dd" '書式を設定しておく
Cells(myRow, "B") = Date '日付を入力
Cells(myRow, "A").NumberFormatLocal = "G/標準" '書式を設定しておく
Cells(myRow, "A") = MaxNo '最大値を入力
End Select
End If
End Sub
|