| 
    
     |  | こんな感じでしょうか。 
 Sub Macro1()
 
 Const InputSheet = "Sheet1" '出力先シート名
 Const OutputSheet = "Sheet2" '出力先シート名
 Const ColCnt = 3       '処理する列数
 
 Dim V As Variant       '配列保管用
 Dim i As Long, j As Long   'ループカウンタ・その他
 Dim MaxRow As Long      '最大行数
 
 With Worksheets(InputSheet)
 '-- 各列の最終行で、最大のものを取得 --
 For i = 1 To ColCnt
 j = .Cells(Rows.Count, i).End(xlUp).Row
 MaxRow = IIf(MaxRow < j, j, MaxRow)
 Next
 
 '-- セルの値を配列に取得 --
 V = .Range("A1").Resize(MaxRow, ColCnt).Value
 End With
 
 '-- 配列内の数値を四捨五入 --
 For i = 1 To ColCnt
 For j = 1 To MaxRow
 If IsNumeric(V(j, i)) Then V(j, i) = Round(V(j, i))
 Next
 Next
 
 '-- 配列の値をセルに転記 --
 Worksheets(OutputSheet).Range("A1").Resize(MaxRow, ColCnt).Value = V
 
 End Sub
 
 |  |