【EXCEL VBA | PasteSpecial・NumberFormat】セルの書式をコピーして貼り付ける

スポンサーリンク

セルの書式をコピーして貼り付ける

日付形式の形式や数値のカンマ区切りやユーザー設定の書式など、書式を設定したセルをコピーして別のセルやセル範囲に書式だけ貼り付ける方を紹介します。

書式をコピーする方法は2つあります。

PasteSpecialメソッド・・・形式を選択して貼りつけの機能

NumberFormatプロパティ・・・セルの書式設定のデータ。これは取り出しも設定も出来る。

次のサンプルで実行してみて、実際の動きを確認しましょう。

A1セルの書式をB1セルに貼り付けます。

PasteSpecialメソッド

まずは PasteSpecialメソッド です。

構文

Rangeオブジェクト.PasteSpecial Paste:=xlPasteFormats

コピーしたいセルをCopyでコピーしてから、貼り付けたいセルのRangeオブジェクトに続けて、PasteSpecialメソッドを実行します。

Sub sample()

    'コピーしたいセルをCopyでコピー
    Range("A1").Copy
    
    '形式を選択して貼り付け(書式のみ)
    Range("B1").PasteSpecial Paste:=xlPasteFormats
    
End Sub

では実行してみましょう。

A1セルの書式がB1セルにコピー出来ました(^o^)

ここでは、形式を選択して貼り付けの”書式”のみ選択してる引数をつけていますが、形式を選択して貼り付けの機能は他にもありますので興味のある方は調べて下さい(^o^)

NumberFormatプロパティ

次は NumberFormatプロパティです。

構文

(コピー先)Rangeオブジェクト.NumberFormat = (コピー元)Rangeオブジェクト.NumberFormat

コピー元のRangeオブジェクトのNumberFormatプロパティをコピー先のRnageオブジェクトのNumberFormatプロパティに代入します。

Sub sample()

    'NumberFormatsプロパティを代入
    Range("B1").NumberFormat = Range("A1").NumberFormat
    
End Sub

上記のコードを同じサンプルで実行してみます。

A1セルの書式がB1セルにコピー出来ました(^o^)