コピーしたデータを「貼り付ける」&「値を貼り付ける」VBAを紹介します。
エクセルでデータを編集する上で欠かせない「コピー&ペースト」の紹介です。
この作業がマクロ化されたら仕事もはかどりますね!
コピぺのVBA
Sheet1のデータをSheet2にコピペします。
VBA
Sub コピペ1()
Sheets(“Sheet1”).Select
Range(“A1:C5”).Copy
Sheets(“Sheet2”).Select
Range(“A1”).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
解説
このマクロを高速化します。
Sub コピペ2()
Sheets(“Sheet1”).Range(“A1:C5”).Copy Destination:=Sheets(“Sheet2”).Range(“A1”)
End Sub
「Destination:=」は省略可能
この「コピペ1」「コピペ2」のマクロは次の注意点があります。
・オートフィルタで抽出したデータの場合
→抽出されないデータが有るなら
値・書式が貼り付けられ、数式は値に変わる
・全データが抽出対象であるなら
→値・数式・書式など全て貼り付けられる
貼り付けた時に数式が残っていると、エラーになる可能性がありますね。
値のみをコピペする
数式や書式を貼り付けたくない場合のVBAです。
VBA
Sub コピペ3()
Sheets(“Sheet1”).Select
Range(“A1:C5”).Copy
Sheets(“Sheet2”).Select
Range(“A1”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
Application.CutCopyMode = False
End Sub
解説
このマクロを高速化します。
Sub コピペ4()
Sheets(“Sheet2”).Range(“A1:C5”).Value = Sheets(“Sheet1”).Range(“A1:C5”).Value
End Sub
この「コピペ4」のVBAは次の注意点があります。
・左辺と右辺の領域が同じ必要がある
・フィルタの抽出結果は無視される
「どのVBAが優れている」というのではなく、用途によって使い分けることによってよりスマートなマクロを組むことができます。
コメント