セルの内容をコピーして貼り付ける

セルの内容をコピー&ペーストで貼り付け

次のようなデータを作っておきます。

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル2040()

    Range("B3:C5").Copy
    Range("B8").PasteSpecial
    Range("E8").PasteSpecial
        
End Sub

■ Range(“B3:C5”).Copy
セルB3からセルC5 の内容がコピーされます。

■ Range(“B8”).PasteSpecial
コピーしたデータを、セルB8に貼り付けます。

■ Range(“E8”).PasteSpecial
コピーしたデータを、セルE8に貼り付けます。
セルの背景、罫線は貼り付けされますが、列幅は貼り付けされません。

●マクロの実行結果
コピー先 1 では、列幅が同じなので元データと同じになります。
コピー先 2 では、背景やセルのデータはペーストされますが、列幅はペーストされません。

セルの列幅を貼り付ける

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル2045()

    Range("B3:C5").Copy
    Range("B8").PasteSpecial
    Range("E8").PasteSpecial
    Range("E8").PasteSpecial (xlPasteColumnWidths)
        
End Sub

■ Range(“E8”).PasteSpecial (xlPasteColumnWidths)
上のコードを追加すると、列幅を貼り付ける事ができます。

●マクロの実行結果
コピー先 2 のE列の幅が広がりました。

セルの書式やセル幅だけをペーストする

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル2050()
 
    Range("B3:C5").Copy
    Range("B8").PasteSpecial (xlPasteFormats)
    Range("E8").PasteSpecial (xlPasteFormats)
    Range("E8").PasteSpecial (xlPasteColumnWidths)
    Application.CutCopyMode = False
     
    Range("A1").Select
    
End Sub

■ Range(“B3:C5”).Copy
セルB3からセルC5の内容がコピーされます。

■ Range(“B8”).PasteSpecial (xlPasteFormats)
セルB8に書式だけを貼り付けます。

■ Range(“E8”).PasteSpecial (xlPasteFormats)
セルB8に書式だけを貼り付けます。

■ Range(“E8”).PasteSpecial (xlPasteColumnWidths)
セルB8の列幅を広げます。

■ Application.CutCopyMode = False
コピーモードを解除します。

■ Range(“A1”).Select
セルの位置をセルA1にします。

●マクロの実行結果
元データの数値は、入力されず書式だけペーストされます。
セルE8の列幅も、広がります。

セルに値や数式を入力するについては次の記事が参考になります。
■関連記事■ セルに値や数式を入力する

以上で「セルの内容をコピーして貼り付ける」の説明を終わります。