Excel VBAでは、セルやシートをコピーする際に Copyメソッド を使用します。これは、Excelの「コピー & 貼り付け」をコードで実現する方法です。本記事では、セルの値をコピーして設定する方法を中心に解説します。
1. 基本構文
Range("コピー元").Copy Range("コピー先")
- コピー元 … 値をコピーするセルや範囲
- コピー先 … 値を貼り付ける開始位置
2. セルの値をコピー
Sub CopyValue1()
Range("A1").Copy Range("B1")
End Sub
👉 「A1」の値を「B1」にコピーします。
3. 複数セルの値をコピー
Sub CopyValue2()
Range("A1:B2").Copy Range("D1")
End Sub
👉 「A1:B2」の範囲を「D1」から始まる位置にコピーします。
範囲の大きさが同じだけコピーされます。
4. コピー後に値だけを設定する
Copy
と組み合わせて PasteSpecial を使うことで、書式を除いた「値だけ」を貼り付けできます。
Sub CopyValueOnly()
Range("A1:B2").Copy
Range("E1").PasteSpecial Paste:=xlPasteValues
End Sub
👉 数式や書式を無視して、値のみコピーします。
5. コピーモードの解除
Copy
を実行すると、Excelはコピー状態(点滅する枠が表示される状態)になります。
マクロ終了後もそのまま残ると見た目が気になるため、最後に コピーモードを解除 すると良いです。
解除には Application.CutCopyMode = False
を使います。
Sub CopyValueWithClear()
Range("A1:B2").Copy
Range("E1").PasteSpecial Paste:=xlPasteValues
'コピー状態を解除
Application.CutCopyMode = False
End Sub
👉 これで「点滅するコピー枠」が消え、すっきりします。
6. 注意点
Copy
は「コピー状態」になるため、Paste
またはPasteSpecial
を併用する- 値だけを設定する場合は
PasteSpecial xlPasteValues
が便利 - 最後に
Application.CutCopyMode = False
を入れるとコピー枠を解除できる
7. まとめ
Copy
はセルや範囲をコピーするメソッド- 値だけ貼り付けたいときは
PasteSpecial xlPasteValues
- 仕上げに
Application.CutCopyMode = False
でコピーモード解除
コメント