VSTO C# Excelアドインでアクティブシートをコピーする方法

C#

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メソッドは、コピーしたシートをどこに配置させるか指定することができます。上記のサンプルコードでは、アクティブシートの後ろに配置させるように指定しています。BeforeAfterを指定することができます。公式ドキュメントは以下にあります。

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


コメント

タイトルとURLをコピーしました