Excel 2007 を使用しています。別のバイナリで C# コードを記述しています。コードは、静的クラスとクラスの静的メソッドを使用します。VSTO Excel ワークシート プロジェクトに DLL への参照があります。これを機能させるには、何を追加または変更する必要がありますか?
私のC#コードは次のようになります:
using System;
using System.Collections.Generic;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
namespace FooStatistics
{
[ComVisible(true)]
public static class Statistics
{
public static int Count(Range range)
{
return range.Count;
}
次のような数式を Excel セルに入力できるようにしたいと考えています。
=FooStatistic.Statistic.Count(A1:A10)
または何でも。
これを見たことがありますが、Excel 2003 の非静的クラス用のようです。統合が改善されていないとは信じられません。
これに関する多くの StackOverflow の質問を見てきました。それらはネイティブ統合を提供しているようには見えず (多くの人は「X オープン ソース ライブラリを使用する」と言っています)、不吉なことに、多くは OP に受け入れられていません。「COMオブジェクトにしてVBAから呼び出す」というのは求めていません。
だから私は探しています:
- エクセル2007
- C# DLL のコード
- Excel セルから UDF として呼び出す
- ネイティブ統合
別の StackOverflow リンクを次に示します。このリンクでは、2 人のレスポンダーが次のように述べています。
- 私の知る限り、VSTO で UDF を直接作成することはできません。
- VSTO は、Excel UDF の作成をサポートしていません。オートメーション アドインは .Net で作成でき、Microsoft が承認した方法のようです。
これは 2009 年 6 月からの質問です。これは本当ですか? 2009 年には、.NET コンポーネントを COM サーバーとして公開して、Excel 用の呼び出し可能な UDF を取得する必要がありますか?