VSTO C# Excelアドインで各種ダイアログを表示する方法

C#

VSTOはVisual Studio Tools for Office の略で、officeのアドインやマクロ付きドキュメントを、VB.netやc#などで記述できるフレームワークです。Visual Studioで開発することができ、VBAとオサラバできるMS公式フレームワークです。

この記事では、c#で、ソートやフォント設定などの各種のExcelダイアログを表示する方法を紹介します。

基本となるダイアログ表示コード

この記事では、並び替え(ソート)、フォントの設定、印刷プレビュー、ブックの共有などいろいろなダイアログの表示方法を紹介しますが、使用する基本的なコードは以下になります。

        public static void ShowDialog(Microsoft.Office.Interop.Excel.XlBuiltInDialog dialogCode)
        {
            Globals.ThisAddIn.Application.Dialogs[dialogCode].Show(
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

        }

各ダイアログの指定方法は、この関数の引数として設定しているXlBuiltInDialog列挙型を利用します。

XlBuiltInDialog列挙型の公式ドキュメント

XlBuiltInDialog列挙型の公式ドキュメントは以下にあります。

https://learn.microsoft.com/ja-jp/dotnet/api/microsoft.office.interop.excel.xlbuiltindialog?view=excel-pia

ですが、見て分かる通りとっても不親切です。

定数名で説明されているダイアログ ボックスを表示しますって・・・それって具体的になんなんですか・・・。全くドキュメントになっていないと思うのは私だけでしょうか。。。

ということで具体例をいくつか紹介します。

並び替えダイアログ(ソート)

並び替えダイアログを表示するには、XlBuiltInDialog列挙型のxlDialogSortを使用します。

ThisAddIn.ShowDialog(Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogSort);

フォントの設定ダイアログ

フォントの設定ダイアログを表示するには、XlBuiltInDialog列挙型のxlDialogFontを使用します。

ThisAddIn.ShowDialog(Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogFont);

印刷プレビュー

印刷プレビューを表示するには、XlBuiltInDialog列挙型のxlDialogPrintPreviewを使用します。

ThisAddIn.ShowDialog(Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogPrintPreview);

ブックの共有ダイアログ

ブックの共有ダイアログを表示するには、XlBuiltInDialog列挙型のxlDialogFileSharingを使用します。

ThisAddIn.ShowDialog(Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogFileSharing);

共有ブックの保護ダイアログ

共有ブックの保護ダイアログを表示するには、XlBuiltInDialog列挙型のxlDialogProtectSharingを使用します。

ThisAddIn.ShowDialog(Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogProtectSharing);

ソースコード全文

ソースコード全文は以下のgithubリポジトリに格納しています。

コンパイルすれば動作しますので、Visual Studioをお持ちの方は遊んでみてください。

https://github.com/harus0313/cliesx


コメント

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