【Excelマクロ】形式を選択して貼り付け

Excelマクロ

形式を選択して貼り付けるとは

「形式を選択して貼り付け」はセルを「コピー」したときに貼り付け方法を選択することができます。

「切り取り」では「形式を選択して貼り付け」は選択をすることができません。

通常、コピーして貼り付けを行うと次の情報もすべて引き継いで貼り付けされます。

・セルの背景色
・罫線
・文字の色

ただ、実務では、次のようなものだけ貼り付けたい、という場面が出てきます。

・文字だけがほしい
・罫線だけ他のところと同じにしたい
・文字の色だけがほしい

「形式を選択して貼り付け」を行うことで、指定したものだけ貼り付けることができるようになります。

指定できる内容

「形式を選択して貼り付け」の中で例を挙げると次のものがあります。

・すべての貼り付け
・文字だけの貼り付け(値貼り付け)
・書式だけの貼り付け
・数式だけの貼り付け

残念ながら「罫線だけの貼り付け」という方法はなく、「書式の貼り付け」(罫線、文字色、背景色など)をひとまとめとして貼り付けることになります。

罫線に関しては、罫線を”貼り付ける”という考えではなく、罫線を引く(設定する)マクロを考える方が簡単です。今回は説明は省略します。

VBAの例

通常の操作では「コピー」→「形式を選択して貼り付け」のため、VBAのコードでも同様に記載をします。

Cells(2,1).Copy
Cells(3,1).PasteSpecial Paste:=xlPasteValues

「形式を選択して貼り付け」は「PasteSpecialメソッド」です。

底に引数として「Paste」において、どのように貼り付けるのかを設定します。

今回利用した「xlPasteValues」はValueが値という意味なので「値貼り付け」のことを指しています。

上のマクロを実行させると、A2(Cells(2,1))をコピーして、A3(Cells(3,1))に「値貼り付け」をするマクロになります。

主な貼り付け方法と定数

「xlPasteValues」は「値貼り付け」でしたが、そのほかにも次のような内容があります。

xlPasteAll すべて貼り付け
xlPasteValues 値貼り付け
xlPasteFormats 書式貼り付け
xlPasteFormulas 数式貼り付け

すべて貼り付けに関しては、 PasteSpecialメソッドをわざわざ使わなくても、CopyメソッドのDestinationを使った方が1行で済むので簡単です。

それ以外については、形式を選択して貼り付けでしか利用できないものなので、それぞれ覚えて活用していきましょう。

まとめ

形式を選択して貼り付けに関しては、「切り取り」ではできません。

「コピー」することで利用できる機能です。

元の書式だけをコピーしたい場合や、文字だけをコピーしたい場合など、さまざまな場面で活用することがあります。

マクロを作る上でも必要な場面は多いと思うのでぜひ覚えていきましょう。

コメント