3行マクロ 70回Paste Special メソッド
式だけコピーしたい時、 あるいは列幅をコピーしたい時と様々な コピーの対象があります。
通常のコピーをそっくり全部するコピーとした場合のほかのコピーは 特別なコピーです。 VBA では Paste Special メソッドと言います。
普段ワークシート上で行う右クリックやリボンからの「形式を選択して貼り付け」を VBA コードでどのように マクロにするかと言う 説明をさせていただきます。
(サンプルファイルは、こちらから 3行マクロ19回サンプルデータ)
Copy メソッドの引数 destination を使った場合には、データは直接、 貼り付け先にコピーされてしまうので、クリップボードを経由しません。 ですからわざわざ Application.CutCopyMode = false を書いてやる必要はありません。

Range.PasteSpecialメソッド
PasteSpecial (貼り付け、 操作、 SkipBlanks、 Transpose)
| 名前 | データ型 | 説明 |
|---|---|---|
| Paste | XlPasteType | 貼り付ける範囲の部分 (xlPasteAllやxlPasteValuesなど)。 |
| 操作名 | XlPasteSpecialOperation | xlPasteSpecialOperationAddなどの貼り付け操作。 |
| SkipBlanks | バリアント型 | True を指定すると、クリップボードの範囲内の空白セルがコピー先の範囲に貼り付けされません。 既定値はFalseです。 |
| Transpose | バリアント型 | 範囲を貼り付けるときに行と列を入れ替える場合は True。 既定値はFalseです。 |
列幅をコピーするには 、Paste Special メソッドの xlPasteColumnWidthsを使います。

Sub コピー転記列幅6()
ActiveCell.CurrentRegion.Copy
ActiveCell.Offset(0, 7).PasteSpecial Paste:=xlPasteAll
Selection.PasteSpecial Paste:=xlPasteColumnWidths
Application.CutCopyMode = False
End Sub
書式をコピーするには 、Paste Special メソッドの xlPasteFormatsを使います。

Sub コピー転記書式7()
ActiveCell.CurrentRegion.Copy
ActiveCell.Offset(0, 7).PasteSpecial Paste:=xlPasteFormats
Selection.PasteSpecial Paste:=xlPasteColumnWidths
Application.CutCopyMode = False
End Sub
数式をコピーするには 、Paste Special メソッドの xlPasteFormulasを使います

Sub コピー転記数式8()
ActiveCell.CurrentRegion.Copy
ActiveCell.Offset(0, 7).PasteSpecial Paste:=xlPasteFormulas
Application.CutCopyMode = False
End Sub
値だけの場合には、Paste Special メソッドの xlPasteValuesを使います
Sub コピー転記値9()
ActiveCell.CurrentRegion.Copy
ActiveCell.Offset(0, 7).PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlPasteColumnWidths
Application.CutCopyMode = False
End Sub
こちらは全部コピーと列幅もコピーする例です。

こちらは書式と列幅をコピーした例です。

こちらは書式と列幅をコピーした例です。

こちらは値だけをコピーしたケースです。 合計欄にカーソルを 持って行っても 数式は表示されるず、値だけが表示されます。
