|
(1)Selectをできるだけしないようにするとこのように短縮できます。
Sub test2()
Sheets(1).Columns("A:A").Copy
Worksheets(Worksheets.Count).Columns("A:A").PasteSpecial Paste:=xlPasteValues
Sheets(2).Columns("A:A").Copy
Worksheets(Worksheets.Count).Columns("B:B").PasteSpecial Paste:=xlPasteValues
Sheets(3).Columns("A:A").Copy
Worksheets(Worksheets.Count).Columns("C:C").PasteSpecial Paste:=xlPasteValues
End Sub
------------------------------
シートを変数化すると短くなります。
そして、Columns("A:A")はColumns(1)とも書けます。
Sub test3()
Dim ws As Worksheet
Set ws = Worksheets(Worksheets.Count)
Sheets(1).Columns(1).Copy
ws.Columns(1).PasteSpecial Paste:=xlPasteValues
Sheets(2).Columns(1).Copy
ws.Columns(2).PasteSpecial Paste:=xlPasteValues
Sheets(3).Columns(1).Copy
ws.Columns(3).PasteSpecial Paste:=xlPasteValues
End Sub
------------------------------
これを繰り返し構文For .. Nextを使って書くと、こうなります。
Sub test4()
Dim ws As Worksheet
Dim k As Long
Set ws = Worksheets(Worksheets.Count)
For k = 1 To 3
Sheets(k).Columns(1).Copy
ws.Columns(k).PasteSpecial Paste:=xlPasteValues
Next
End Sub
参考にしてみて下さい。
|
|