Worksheet.Copy メソッド (Excel)

シートを現在のブックか新しいブック内の他の場所にコピーします。

構文

コピー ()

Worksheet オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
Before 省略可能 バリアント型 (Variant) コピーしたシートを特定のシートの直前の位置に挿入するときに、そのシートを指定します。 After を指定した場合、Before を指定することはできません。
After 省略可能 バリアント型 (Variant) コピーしたシートを特定のシートの直後の位置に挿入するときに、そのシートを指定します。 ただし、引数 After を指定すると、引数 Before を指定することはできません。

注釈

Before または After を指定しない場合、コピーした Worksheet オブジェクトを含む新しいブックが作成されます。 新しく作成されたブックには Application.ActiveWorkbook プロパティが保持され、1 つのワークシートが含まれています。 1 つのワークシートには、ソース ワークシートの Name プロパティと CodeName プロパティが保持されます。 コピーしたワークシートに VBA プロジェクトのワークシート コード シートが含まれている場合、これは新しいブックにも含まれます。

複数のワークシートの配列選択を、同様の方法で新しい空白 の Workbook オブジェクトにコピーできます。

Source と Destination は同じ Excel.Application インスタンスに存在する必要があります。そうしないと、ランタイム エラー '1004' が発生します。そのようなインターフェイスはサポートされていません。使用 Sheet1.Copy objWb.Sheets(1) されている場合はサポートされません。またはランタイム エラー '1004': Worksheet クラスのコピー メソッドが使用されていない場合 ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1) は失敗します。

次の使用例は、シート 1 のコピーを、シート 3 の後に挿入します。

Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")

次の使用例は、最初に Sheet1 を新しい空白のブックにコピーしてから、新しいブックを保存して閉じます。

Worksheets("Sheet1").Copy
With ActiveWorkbook 
     .SaveAs Filename:=Environ("TEMP") & "\New1.xlsx", FileFormat:=xlOpenXMLWorkbook
     .Close SaveChanges:=False
End With

次の使用例は、ワークシート Sheet1、Sheet2、Sheet4 を新しい空白のブックにコピーし、新しいブックを保存して閉じます。

Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Copy
With ActiveWorkbook
     .SaveAs Filename:=Environ("TEMP") & "\New3.xlsx", FileFormat:=xlOpenXMLWorkbook 
     .Close SaveChanges:=False 
End With 

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。