「Excelでコピーしたあと、貼り付けたら表がぐちゃぐちゃになった……」 そんな経験、あなたにもありませんか?
普通のコピー&ペーストは、いわば「全部盛りセット」です。でも、現場では「中身の数字だけ」欲しかったり、逆に「枠線と色だけ」コピーしたかったりすることがよくあります。
そんな時、あなたの強力な味方になるのがVBAの「PasteSpecial(ペーストスペシャル)」です。
本記事はGeminiPROを用いて執筆しています。
1. PasteSpecialってなに?
一言でいうと、「コピーしたデータの中から、あなたの好きなパーツだけを選んで貼り付ける」機能です。
普通のペーストが「幕の内弁当を丸ごと買う」ことだとしたら、PasteSpecialは「お弁当の中から、エビフライだけを抜き取って自分のお皿に載せる」ような、自由自在なテクニックなんです。
2. あなたがよく使う「3つの魔法」
このコードを使う時は、まず普通に Copy をしたあと、次の行に「どう貼り付けたいか」を命令します。あなたが特によく使う3つのパターンを見てみましょう。
① 「計算式」を捨てて「数字」だけにする
「計算式が入ったセルをコピーして別の場所に貼ったら、エラー(#REF!)が出ちゃった!」……そんな時はこれです。
Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues '値だけ貼り付け
② 「見た目(色や枠線)」だけをマネする
中身の数字は書き換えたくないけど、プロっぽいきれいなデザインだけコピーしたい時に使います。
Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteFormats '書式(見た目)だけ貼り付け
③ 「全部」をスマートに貼り付ける
普通のコピペと同じですが、あえて「形式を選んでるぞ」と意識したい時に。
Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteAll '全部貼り付け
3. 具体的な例題:あなたの家計簿で考えてみよう
例えば、あなたがExcelで家計簿をつけているとします。 「1月」のシートには、合計を出すための難しい計算式がいっぱい入っています。
この「合計金額」だけを、まとめ用の「年間グラフシート」に持っていきたい時、普通のコピペだと計算式まで付いてきてしまい、計算が狂ってしまいます。 そこで xlPasteValues(値だけ貼り付け) を使うのです。そうすれば、計算式は置いてきて、「確定した金額」だけを正しく運ぶことができます。
4. [Paste:=]の一覧
Paste:= のあとに書き換えるだけで、あなたの思い通りに貼り付け内容が変わります。特によく使うものをまとめました。
| 書く言葉(定数) | あなたができること(貼り付け内容) |
| xlPasteAll | 全部盛り。 内容、色、枠線、すべてをコピーします。 |
| xlPasteValues | 中身の数字だけ。 計算式を消して、結果だけが欲しい時に。 |
| xlPasteFormats | 洋服(見た目)だけ。 背景色、フォント、枠線だけをコピー。 |
| xlPasteFormulas | 計算式だけ。 数式そのものをコピーしたい時に。 |
| xlPasteComments | メモだけ。 セルに付けた「メモ(コメント)」だけをコピー。 |
| xlPasteColumnWidths | 列の幅だけ。 表の横幅をピッタリ合わせたい時に超便利。 |
| xlPasteValidation | 入力ルールだけ。 設定したドロップダウンリストなどをコピー。 |
| xlPasteAllExceptBorders | 枠線以外全部。 表のデザインはそのまま、外枠だけ消したい時に。 |
5. 使うための準備
- 必要なExcelバージョン: すべてのバージョンで使えます。昔のExcelでも今のExcelでも変わらない、安定の技術です。
- 前提として知っておくこと:
- Copyメソッド: まず「コピー」という動作をさせてからでないと、この魔法は使えません。
- Copyについて学ぶ →VBA【Copy】について簡単に解説
- 後片付け: コピーが終わったら
Application.CutCopyMode = Falseと書くと、画面の点々が消えてスッキリしますよ!



コメント