黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』

ワークシートのコピー

本記事は、Excel C# Script入門講座の1記事です。

ワークシートのコピー

ワークシートのコピーには、WorksheetオブジェクトのCopyメソッドを使用します。このメソッドは引数で、移動先を指定することができます。

Copyメソッドの構文

(Worksheetオブジェクト).Copy(Before, After)

Copyメソッドの引数

AfterまたはBeforeのいずれかのみ指定可能です。

引数に指定できるWorksheetオブジェクトは存在しているもののみです。

引数名 必須 / オプション 内容
Before 省略可能 指定したWorksheetオブジェクトの直前にコピーします。
After 省略可能 指定したWorksheetオブジェクトの直後にコピーします。
注意

引数 Before と引数 After を共に省略した場合は、新規ブックが自動的に作成され、シートはそのブック内にコピーされます。

WorksheetsコレクションオブジェクトのCopyメソッドを使うことで、複数のWorksheetオブジェクトをまとめてコピーすることができます。引数はWorksheetオブジェクトの場合と同様です。

サンプルコード

//Sheet1をSheet3の直後にコピー
var sheet1 = Excel.Worksheets("Sheet1");
var sheet3 = Excel.Worksheets("Sheet3");
sheet1.Copy(After:sheet3);
//Sheet1を新しい空のブックにコピーし、新しいブックを保存して閉じる。
var sheet1 = Excel.Worksheets("Sheet1");
sheet1.Copy();
Excel.ActiveWorkbook.SaveAs(Filename:"New1.xlsx",FileFormat:51);
Excel.ActiveWorkbook.Close(SaveChanges:false);