VocExcel(単語帳) / VBA Tips
 
 [Key] エクセル / Excel / VBA /マクロ


<--- 戻る

フォームを使わずに連番・日付を自動的に入力

サンプルファイル

 *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




--