【VBA】コピペ・値を貼り付ける

コピーしたデータを「貼り付ける」&「値を貼り付ける」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

解説

Sheet1を選択
A1からC5の領域をコピー
Sheet2を選択
A1を選択
値・数式・書式など全てを貼り付け
コピーモードを終了する

このマクロを高速化します。

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

解説

 

「Paste:=」のあとに、何をペーストするかの指示をしています。

このマクロを高速化します。

Sub コピペ4()

Sheets(“Sheet2”).Range(“A1:C5”).Value = Sheets(“Sheet1”).Range(“A1:C5”).Value

End Sub

この「コピペ4」のVBAは次の注意点があります。

・左辺と右辺の領域が同じ必要がある
・フィルタの抽出結果は無視される

「どのVBAが優れている」というのではなく、用途によって使い分けることによってよりスマートなマクロを組むことができます。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

子育てに奮闘しながらも、再びガッツリ走り込める日を夢見るフルタイム会社員。

コメント

コメントする

CAPTCHA


目次