方法: プログラムによってワークシートをコピーする
ワークシートのコピーを作成し、ブック内の既存のワークシートの前または後に挿入できます。ワークシートの挿入先を指定しない場合は、新しいブックが作成され、そこに新しいワークシートが挿入されます。
対象: このトピックの情報は、Excel 2013 と Excel 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
[!メモ]
プログラミングによってワークシートをコピーしても、エンド ユーザーが手動でワークシートをコピーしても、新しいワークシートには分離コードがないので、新しいワークシート上のコントロールは機能しません。新しくコピーしたワークシートは Microsoft.Office.Interop.Excel.Worksheet オブジェクトであって、Microsoft.Office.Tools.Excel.Worksheet ホスト項目ではないからです。Windows フォーム コントロールおよびホスト コントロールは、ホスト項目にのみ追加できます。詳細については、「ホスト項目およびホスト コントロールのプログラム上の制限事項」を参照してください。
ドキュメント レベルのカスタマイズのブックに、コピーしたワークシートを追加するには
Copy メソッドを使用して、作業中のブック内の 1 番目のワークシートをコピーし、そのコピーを 3 番目のシートの後に挿入します。
Globals.Sheet1.Copy(After:=Globals.ThisWorkbook.Sheets(3))
Globals.Sheet1.Copy(Globals.ThisWorkbook.Sheets[3]);
アプリケーション レベルのアドインで、コピーしたワークシートをブックに追加するには
Copy メソッドを使用して、作業中のブック内の 1 番目のワークシートをコピーし、そのコピーを 3 番目のシートの後に挿入します。
Dim worksheet1 As Excel.Worksheet = CType(Application.ActiveWorkbook.Worksheets(1), _ Excel.Worksheet) Dim worksheet3 As Excel.Worksheet = CType(Application.ActiveWorkbook.Worksheets(3), _ Excel.Worksheet) worksheet1.Copy(After:=worksheet3)
Excel.Worksheet worksheet1 = ((Excel.Worksheet)Application.ActiveWorkbook.Worksheets[1]); Excel.Worksheet worksheet3 = ((Excel.Worksheet)Application.ActiveWorkbook.Worksheets[3]); worksheet1.Copy(worksheet3);
参照
処理手順
方法: プログラムを使用して新しいワークシートをブックに追加する
概念
Office プロジェクト内のオブジェクトへのグローバル アクセス