アフィリエイト広告を利用しています

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

目次

Copy&Pasteメソッド

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

■ Copyメソッド

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

Sub サンプル3346_1()

Range("B3:C5").Copy Range("B8")
Range("B3:C5").Copy Range("E8")

End Sub

• Range(“B3:C5”).Copy Range(“B8”)
 ’セルB3~セルC5のデータをコピーして、セルB8にコピーします。
• Range(“B3:C5”).Copy Range(“E8”)
 ’セルB3~セルC5のデータをコピーして、セルE8にコピーします。

■ Pasteメソッド

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

Sub サンプル3346_2()
<pre><code>Range("B3:C5").Copy
ActiveSheet.Paste Range("B8")
ActiveSheet.Paste Range("E8")
Application.CutCopyMode = False    </code></pre>
End Sub

• ActiveSheet.Paste Range(“B8”)
 ’アクティブシートのセルB8に貼り付ける。
• Application.CutCopyMode = False
 ’コピーモードをオフにします。

■ CurrentRegion.Copy

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

Sub サンプル3346_3()
<pre><code>Range("B3").CurrentRegion.Copy
ActiveSheet.Paste Range("B8")
ActiveSheet.Paste Range("E8")
Application.CutCopyMode = False</code></pre>
End Sub

• Range(“B3”).CurrentRegion.Copy
 ’セルB3を基準に表を選択し、コピーします。

PasteSpecialメソッド

PasteSpecialメソッドで貼り付ける。

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

Sub サンプル3346_4()
<pre><code>Range("B3:C5").Copy
Range("B8").PasteSpecial
Range("E8").PasteSpecial</code></pre>
End Sub

• Range(“B3:C5”).Copy
 ’セルB3~セルC5 の内容をコピーします。

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

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

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

セルの列幅を貼り付ける

セルの列幅などの書式を含んで貼り付けます。

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

Sub サンプル3346_5()
<pre><code>Range("B3:C5").Copy
Range("B8").PasteSpecial
Range("E8").PasteSpecial
Range("E8").PasteSpecial (xlPasteColumnWidths)</code></pre>
End Sub

• Range(“E8”).PasteSpecial (xlPasteColumnWidths)
 ’(xlPasteColumnWidths)を追加すると、列幅を貼り付ける事ができます。

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

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

セルのデータはコピーしないで、書式やセル幅だけをペーストする。

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

Sub サンプル3346_6()
<pre><code>Range("B3:C5").Copy
Range("B8").PasteSpecial (xlPasteFormats)
Range("E8").PasteSpecial (xlPasteFormats)
Range("E8").PasteSpecial (xlPasteColumnWidths)
Application.CutCopyMode = False

Range("A1").Select</code></pre>
End Sub

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

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

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

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

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

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

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

PasteSpecialの引数

Paste設定値説明
xlPasteAllすべて
xlPasteAllExceptBorders罫線を除く全て
xlPasteAllUsingSourceThemeコピー元のテーマを使用してすべて貼り付け
xlPasteAllMergingConditionalFormatsすべての結合されている条件付き書式
xlPasteColumnWidths列幅
xlPasteCommentsコメント
xlPasteFormats書式
xlPasteFormulas書式
xlPasteFormulasAndNumberFormats数式と数値の書式
xlPasteValidation入力規則
xlPasteValues
xlPasteValuesAndNumberFormats値と数値の書式
Operation設定値説明
xlPasteSpecialOperationAdd加算
xlPasteSpecialOperationDivide除算
xlPasteSpecialOperationMultiply乗算
xlPasteSpecialOperationNoneしない
xlPasteSpecialOperationSubtract減算

Cutメソッドで移動する

Cutメソッドでセルの内容を移動します。

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

Sub サンプル3346_7()
<pre><code>Range("B3:C5").Cut Range("E3")</code></pre>
End Sub

• Range(“B3:C5”).Cut Range(“E3”)
 ’セルB3~セルC5の内容を、セルE3に移動します。

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

目次