Excel-DNA で XLL をつくる(その5)

 前回は、Translator.dll を作りましたが、これ・・・
「関数名やヘルプトピック等が表示されず、なんだかな~?」って感じですよね。
(こんな感じ↓)

関数を選択して、使用する時も、「ヘルプがありません」 とそっけない(笑)
(こんな感じ↓)

なので、
「関数の分類」に新たな項目を作成しましょう。
(こんな感じ↓)

関数を使用するときのダイアログも、引数をわかりやすくしましょう。
(こんな感じ↓)

それと、関数名も変えてみます(ToEnglish メソッドの Excel 上での関数名を ”英訳” に変更)。
(こんな感じ↓)

 では、さっそくやってみましょう♪

 前回作成したTranslatorソリューションのルートフォルダを開いてください。
そこに、Excel-DNA のDistribution フォルダの中にある、「ExcelDnaIntegration.dll」 ファイルをコピーします。
(こんな感じ↓)

つぎに、ソリューションを開いて、コピーした ExcelDnaIntegratin.dll を参照に追加します。
(こんな感じ↓)

参照タブから行います。
(こんな感じ↓)

参照設定したら、using 句に、ExcelDna.Integration 名前空間を追記します。
(こんな感じ↓)

これで、準備が出来ました。下記のようにコードを追加してください。

using Gapi.Language;
using ExcelDna.Integration;

namespace Transrator
{
    public class Class1
    {
        [ExcelFunction(Name = "英訳", Category = "翻訳", Description = "入力文字列を英訳します", HelpTopic = "和訳します")]
        public static string ToEnglish([ExcelArgument(Description = "を英訳します。", Name = "対象文字列")]string str)
        {
            return Gapi.Language.Translator.Translate(str, Language.Unknown, Language.English);
        }

        [ExcelFunction(Name = "和訳", Category = "翻訳", Description = "入力文字列を日本語に翻訳します", HelpTopic = "英訳します")]
        public static string ToJapanese([ExcelArgument(Description = "を和訳します。", Name = "対象文字列")]string str)
        {
            return Gapi.Language.Translator.Translate(str, Language.Unknown, Language.Japanese);
        }
    }
}

コードを追加したら、ビルドして試してみましょう。
・・・いかがでしょうか?ちゃんと各ダイアログの表示が期待どおりに表示されたものと思います。
追加したコードでは、ExcelFunctionAttribute(関数の属性) に、
Name= 、 Category= 、 Description= 、 HelpTopic= と 4つの属性を設定しました。どの属性が各ダイアログのどの部分に当てはまるか、実行結果と見比べてみてください。

 ここまで、自前の関数のDLLを作成して、Excel のシート上で利用するテストをしてきました。
次回は、VBA からこれらの関数を呼んでみたいと思います♪

では、また(笑)

カテゴリー: Excel, .NetFramework タグ: パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です