Vba:範囲を別のシートにコピーする方法


VBA で次の構文を使用すると、セル範囲を別のシートにコピーできます。

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

この特定のマクロは、 Sheet1の範囲A1:C11のセルをコピーし、 Sheet2のセルA1から始まる範囲に貼り付けます。

: Application.CutCopyMode = False行は、マクロの実行後にカット アンド コピー モードを無効にすることを指定します。

次の例は、この構文を実際に使用する方法を示しています。

例: VBA を使用して範囲を別のシートにコピーする

Excel のSheet1というシートに次のデータ セットがあり、さまざまなバスケットボール選手に関する情報が含まれているとします。

現在空のSheet2という別のシートもあると仮定します。

Sheet1からA1:C11の範囲内のすべての値をコピーし、 Sheet2のセルA1から貼り付けたいとします。

これを行うには、次のマクロを作成できます。

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

このマクロを実行すると、 Sheet2に次の出力が表示されます。

Sheet1の範囲A1:C11のすべての値がセルA1からSheet2にコピーされたことに注意してください。

デフォルトでは、値はソースの書式設定で貼り付けられました。

たとえば、ヘッダー行の値は太字です。

ソースの書式設定を行わずに値のみを貼り付けたい場合は、次のようにPaste:=xlPasteValuesを指定できます。

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial Paste=xlPasteValues

Application.CutCopyMode = False

End Sub

このマクロを実行すると、 Sheet2に次の出力が表示されます。

Sheet1の範囲A1:C11の値 (書式設定なし) のみがSheet2にコピーされたことに注意してください。

: VBA PasteSpecialメソッドの完全なドキュメントはここにあります。

追加リソース

次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。

VBA:書式設定せずに値だけを貼り付ける方法
VBA: 表示されている線を別のシートにコピーする方法
VBA: 条件に基づいて行を別のシートにコピーする

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です