|
こんな感じでしょうか。
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
|
|