VSTO C# Excelアドインでアクティブシートをコピーする方法
VSTOはVisual Studio Tools for Office の略で、officeのアドインやマクロ付きドキュメントを、VB.netやc#などで記述できるフレームワークです。Visual Studioで開発することができ、VBAとオサラバできるMS公式フレームワークです。
この記事では、c#で、Excelブックのアクティブシートをコピーする方法を紹介します。
アクティブシートをコピーするコード
アクティブシートのコピーを行うコードは至って簡単です。アクティブシートをExcel.Worksheet
オブジェクトとして生成し、Copy
メソッドを呼びだけです。
public static void CopySheet()
{
Excel.Worksheet activeWorkSheet = Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet;
activeWorkSheet.Copy(After: activeWorkSheet);
}
Copy
メソッドは、コピーしたシートをどこに配置させるか指定することができます。上記のサンプルコードでは、アクティブシートの後ろに配置させるように指定しています。Before
とAfter
を指定することができます。公式ドキュメントは以下にあります。
https://learn.microsoft.com/en-us/dotnet/api/microsoft.office.tools.excel.worksheet.copy?view=vsto-2017
この関数の使い方
この関数の使い方は、ズバリCopySheet()
関数を呼び出すだけです。引数は無いのでただ呼び出すだけでアクティブシートをコピーできます。
ThisAddIn.CopySheet();
ソースコード全文
ソースコード全文は以下のgithubリポジトリに格納しています。
コンパイルすれば動作しますので、Visual Studioをお持ちの方は遊んでみてください。
https://github.com/harus0313/cliesx
リンク
コメント