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】マクロ入門 |
コメント