【VBA/マクロ】セルのコピー・切り取り・貼り付け

ExcelのVBA(マクロ)で、セルのコピー・切り取り・貼り付けについてまとめました。

コピー・切り取り・貼り付け

VBA(マクロ)でセルの「コピー」「切り取り」「貼り付け」をするには次のメソッドを利用します。

書式

Range("A1").Copy
Range("A2").PasteSpecial (xlPasteAll)

「Copy」メソッドで指定したセルの内容をコピーできます。
もしコピーでなく切り取りも場合は「Cut」メソッドを使います。
また、「PasteSpecial」メソッドでコピーした内容を貼り付けます。
また、引数に入れる定数によって、コピーする内容を細かく設定できます。

定数 説明(貼り付ける対象)
xlPasteAll すべて(デフォルト)
xlPasteFormulas 数式のみ
xlPasteValues 値のみ
xlPasteFormats 書式のみ
xlPasteComments コメントのみ
xlPasteValidation 入力規則
xlPasteAllExceptBorders 罫線を除くすべて
xlPasteColumnWidths 列幅
xlPasteFormulasAndNumberFormats 数式と数値の書式
xlPasteValuesAndNumberFormats 値と数値の書式
xlPasteAllUsingSourceTheme コピー元のテーマを使用してすべて貼り付け
xlPasteAllMergingConditionalFormats すべての結合されている条件付き書式

サンプルコード

サンプルプログラムのソースコードです。

Sub test()

    ' A1セルの内容をコピー
    Range("A1").Copy

    ' A2セルに貼り付け
    Range("A2").PasteSpecial (xlPasteAll)

    ' コピーモードを解除
    Application.CutCopyMode = False

End Sub

補足

CopyやCutで次のようにDistinationを使用すると、Pasteメソッドを省略して貼り付けもできます。

' A1セルをコピーしてA2セルに貼り付け
Range("A1").Copy Distination:=Range("A1")
関連記事
1 【Excel/VBA】マクロ入門

コメント