|
こんにちは。かみちゃん です。
横から失礼します。
>そしてまたお聞きしたいのですが、B列ではなくF列をA列に足すときは
>
>どこをどう変えたらいいでしょうか?
ichinoseさんが提示されたコードは、B列から1行目の最右端列までの列すべてを処理対象としています。
これをF列からとするには、
For idx = 6 To limc
とします。
なお、解説は、以下のとおりです。
Option Explicit
Sub main()
Dim limc As Long, idx As Long
Dim strow As Long
Dim r_cnt As Long
'1行目の最右端のセルの列番号を取得
'取得した列までを繰り返して処理する
limc = Cells(1, Columns.Count).End(xlToLeft).Column
'1列目(A列)の最下行の次行の行番号を取得
'取得した行を2列目(B列)以降各列の貼り付け開始位置とする。
strow = Cells(Rows.Count, 1).End(xlUp).Row + 1
'2列目(B列)から1行目の最右端の列番号までを1列ずつ処理する。
For idx = 2 To limc
'処理対象列の最下行を取得する。
r_cnt = Cells(Rows.Count, idx).End(xlUp).Row
'1行目から処理対象列の最下行までの値を
'1列目の貼り付け開始位置から処理対象行数の範囲に貼り付ける
Range(Cells(strow, 1), Cells(strow + r_cnt - 1, 1)).Value = _
Range(Cells(1, idx), Cells(r_cnt, idx)).Value
'処理対象範囲をクリアする。
Range(Cells(1, idx), Cells(r_cnt, idx)).ClearContents
'貼り付け開始位置をずらす
strow = strow + r_cnt
Next
End Sub
|
|