シートを現在のブックか新しいブック内の他の場所にコピーします。
構文
式。コピー (前、 後)
式Worksheet オブジェクトを表す変数。
パラメーター
| 名前 | 必須 / オプション | データ型 | 説明 |
|---|---|---|---|
| Before | 省略可能 | バリアント型 (Variant) | コピーしたシートを特定のシートの直前の位置に挿入するときに、そのシートを指定します。 「後」を指定する場合、「前」を指定することはできません。 |
| After | 省略可能 | バリアント型 (Variant) | コピーしたシートを特定のシートの直後の位置に挿入するときに、そのシートを指定します。 ただし、引数 After を指定すると、引数 Before を指定することはできません。 |
注釈
Before または After のいずれも指定しないと、コピーされたワークシート オブジェクトを含む新しいブックが作成されます。 新しく作成されたブックには、 Application.ActiveWorkbook プロパティが保持され、1 つのワークシートが含まれています。 単一のワークシートには、ソース ワークシートの Name プロパティと CodeName プロパティが保持されます。 コピーしたワークシートに VBA プロジェクトのワークシート コード シートが保持されている場合は、そのコード シートも新しいブックに引き継がれます。
複数のワークシートの配列選択を、同様の方法で新しい空白の ブック オブジェクトにコピーできます。
ソースとコピー先は同じ Excel.Application インスタンスにある必要があります。それ以外の場合は、ランタイム エラー '1004' が発生します。 Sheet1.Copy objWb.Sheets(1) のようなものが使用された場合は、そのようなインターフェイスはサポートされていません。またはランタイム エラー '1004': ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1) のようなものが使用された場合は、Worksheet クラスの Copy メソッドが失敗しました。
例
次の使用例は、シート 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 のサポートおよびフィードバックを参照してください。