5.5 セルのコピーと貼り付け
5.2 セルの選択と選択されているセルと同じようなネタですが(汗)、普段エクセルを使っているときセルをコピー・貼り付けする場面がたくさんあると思いますが、とりあえず次の手順でコピー・貼付けをしたとしましょう。

@コピー元のセルを選択する
A何らかの方法でコピーをする
(例:編集→コピー)
B貼り付け先のセルを選択する
C何らかの方法で貼り付けをする
(例:右クリック→貼り付け)


これとほぼ同じことをマクロでやってみます。セルをコピーする場合は???.Copyメソッドを実行、貼り付けは???.PasteSpecialメソッドを実行します。???の部分は、どちらもCellsRangeSelectionなどセルを表すオブジェクトです。詳しくは、5.1 セルや行列を扱うための基本5.2 セルの選択と選択されているセルをどうぞ。
使用例
???.Copy???.PasteSpecialの使用例を、Rangeを使って説明します。例では、セルA1をコピーし、セルA2へ貼り付けています。もちろん、範囲指定でコピー・貼り付けも可能です。

Sub prcCopyPaste()

    'セル(セルA1)をコピーします
    Range("A1").Copy

    'コピーしたセルをセルA2へ貼り付けます
    Range("A2").PasteSpecial

End Sub
 ※このエクセルマクロはワークシート内へ記述するマクロです
便利な機能!書式だけや値だけをコピー
ちなみに、貼り付けの???.PasteSpecialには便利な機能があります。書式だけを貼り付けたり、値だけを貼り付けたり、罫線だけを貼り付けたりです。さすがは、Special ですね(笑)

例えば、コピーしたセルの値だけを貼り付けしたいときは???.PasteSpecialメソッドに、Paste:=xlPasteValuesという引数を付けます。

'セルの値だけをコピーする
Range("A1").Copy
Range("A2").PasteSpecial Paste:=xlPasteValues
 ※このエクセルマクロはワークシート内へ記述するマクロです


また、コピーしたセルの書式(色や罫線)だけを貼り付けしたいときはPaste:=xlPasteFormatsという引数を付けます

'セルの書式だけをコピーする
Range("A1").Copy
Range("A2").PasteSpecial Paste:=xlPasteFormats
 ※このエクセルマクロはワークシート内へ記述するマクロです


なお、貼り付けできる形式は以下を参考にしてください。

 ◆Paste:=へ指定できる内容
xlPasteAll すべて
xlPasteFormulas 数式
xlPasteValues
xlPasteFormats 書式
xlPasteComments コメント
xlPasteValidation 入力規則
xlPasteAllExceptBorders 罫線を除くすべて
xlPasteColumnWidths 列幅
xlPasteFormulasAndNumberFormats 数式と数値の書式
xlPasteValuesAndNumberFormats 値と数値の書式
Copyright(C) 1999-2006 結城圭介。 All rights reserved