| 
    
     |  | A    B      C 1 123  987    999
 2      876
 3 569
 4
 5
 6 789
 7
 と仮にシートがあったとすると
 
 
 A    B      C
 1 123  987    999
 2 123  876    999
 3 569  876    999
 4 569  876    999
 5 569  876    999
 6 789  876    999
 7 789  876    999
 
 というふうに数値が入ってるセルの下側が空白の場合のみ上の数値をコピーすると
 いうマクロを作りたいです。
 
 ここまでは本やネットで調べながらできましたが、
 最終行+1行まで値がコピーされてしまいます。
 最終行までにする場合はどうすればよいでしょうか?
 
 Sub セルの自動入力()
 '1. 開始行・列の取得
 '2. 最終行・最終列の取得
 '3. 開始列から最終列まで繰り返す
 '4.  開始行+1行から最終行まで繰り返す
 '5.   セルの値が未入力のとき 1つ上のデータをセット
 '6.   次のセルへ
 
 Dim Row1 As Long, Row2 As Long
 Dim Clm1 As Long, Clm2 As Long
 Dim i As Long
 Dim j As Long
 
 With Selection
 Row1 = .Row
 Row2 = Row1 + .Rows.Count
 Clm1 = .Column
 Clm2 = Clm1 + .Columns.Count - 1
 End With
 
 For i = Clm1 To Clm2
 For j = Row1 To Row2
 If Cells(j, i).Value = "" Then _
 Cells(j, i).Value = Cells(j - 1, i).Value
 Next
 Next
 End Sub
 
 
 |  |