これ凄く苦労したんですよね。
マクロの記録だとだめで。
イメージとして、
まず繰り返す処理はfor文を使います。
——————————-
Sub test()
Dim i As Long
For i = 1 To 3
>ここにやりたい処理を書く
Next
End Sub
—————————————
これは3回繰り返す処理で
例えば
Sub ボタン1_Click()
Dim i As Long
For i = 1 To 3
ActiveCell.Offset(1, 0).Select
Next
End Sub
————————————-
とすると

3回オフセット下に移動するので

こうなる
ただ、何回繰り返すか不透明な場合のほうが実務には多いと思う。
なので、
Dim 変数 As Long
変数=Cells(Rows.count,1).end(xlup).row
for i = 1 to 変数
を加える。
これによって
セル(最終行,1列)をコントロールUPした時の行数が
変数になる。
わかりにくいな。
例えば下のDの値が変数になる。4だ。

こうなったら5になる。

こうなったら8になる

cells(rows.count,1)からコントロール上キーという意味なので

このA8にたどり着く。

ごちゃごちゃしてきたな。
わかりやすいものを作ろう
Sub Macro1()
‘
‘ Macro1 Macro
‘
‘
Dim 変数 As Long
変数 = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To 変数
ActiveCell.Select
Selection.Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -1).Select
Next
End Sub
アクティブなセルをコピーして
右のセルに張り付ける。
そのあと左下にセルを移動させる。
これが1回の動作。
これを繰り返す。
スタートがこれで

結果がこれになる。

例題でこれ作ってみたけども
普通にコピペでよかったな。
まぁオフセットとコピーは抜きにして
最終行まで繰り返す処理は便利なので
備忘録として残します。
あとまぁ、一冊くらいは専門書があったほうがいいかもしれません。


コメント