質問

の説明

皆様にお伝えしたくて書き込み、カップルのExcel UDFs COMのサーバーかの基準によるものでないことを挿入機能 ダイアログ)の取得を押す fx.あり、自分で見てもCOMサーバーに記載のカテゴリーダーが

  • も見えEquals、およGetHashCodeは、GetType、ToString(はかなりの悪さにExcelユーザー)
  • 私を選COMサーバーを持ち上げるのですけれどもの*関数の引数*[1]ダイアログのない引数の情報と容の機能です。

こちらは跛行を取得します:

Insert関数ダイアログhttp://www.iwebthereforeiam.com/files/Insert%20function%20dialog.gif

Excel関数の引数ダイアログhttp://www.iwebthereforeiam.com/files/Function%20Arguments%20dialog.gif

の質問

があります。純属性を付けりゃいいんだ手法に関することによりExcel?

  • したいので説明を入力するのに機能しているのでしょうか。
  • きの内容のパラメータ?
  • でんをカテゴリの名前は私の機能で取得しまうのProgID?

(そう悲しやすいExcelDNAがせるわけにはいきませんが。模倣したgovertのコード"カスタム属性には、ローダーのもうひとつです。 なっているように見えますが可愛いです。)


追加の背景

していない場合は仕事をExcel+COMサーバー、ここにいくつかの有用な資源を最大速度:

前StackOverflowの質問:
どCOMサーバーのためのExcel書VB.NET 設置され、登録された自動化サーバです。
どのように追加ツールされている。ネプロジェクトのVB6(VBA)の参照ダイアログを?

その他の資源の
書ユーザー定義機能になりました。当期純
の構築-コーポレート-ガバナンス.純COM組立
文書のカスタムExcelワークシートの機能をクライアントまで、フルのC#


編集2009-10-20 14:10

試呼び出し Application.MacroOptions a Sub New().

  1. なサブNew()
    セミ許容:機能は以下のカテゴリProgID.
  2. 共有のサブNew()
    きません:ビルド時にエラーとなります。
    Cannot register assembly "...\Foo.dll".
    Exception has been thrown by the target of an invocation.
  3. サブNew()
    きません:カテゴリーが表を挿入機能でダイアログを表示します。

私はこの問題の両方にMacroOptionsに関わるようにルートが推奨するチャールズ.


編集2009-10-20 14:55

ミラードバザールとチメンリMikeの勧告をインターフェースを実施した殺の迷惑に追加方法が分に含まれていなかった。


編集2009-10-20 15:00

このMicrosoft第 早くから2007年まで(経由 マイクリンク)のような完全な答えは、トピック:

自動ドイン(Add-ins)の機能 ウィザード

各自動化を追加して、独自の カテゴリExcelの機能ウィザードを閉じます。カテゴリの名称のProgID用 に追加される;の指定はできません 異なるカテゴリ名の自動化 追加ます。また、あ ようがないの指定機能 記述、または引数の説明では、 ヘルプ自動化には追加さ 機能の機能ウィザードを閉じます。


1 えっ、StackOverFlowくなる場合もありますではできませんitalicize文字列内で明示的にHTMLのulリスト?

役に立ちましたか?

解決

あのこれは簡単に修正、その他の部品としても用いられます。すべてのものではない-というテーマのもと、新たなものだけの時間。

書き:

も見えEquals、およGetHashCode, GetType、ToString(ある かなりの悪さに Excelのユーザー)

はい、同意し、この絶望ましくないが可能であり、これまでのようにする必要があります。これが起こっているあなたのクラスを継承しながらシステム。オブジェクト"と。純授業は、デフォルトのインタフェースが露出することができない場合はこれらを含めます。これは、例えば、ご利用の場合は'ClassInterfaceAttribute'を使用し、設定'ClassInterfaceType.AutoDual'.

E.g.クライアントまで、フルのC#:

[ClassInterface(ClassInterfaceType.AutoDual)]

にVB.NET:

<ClassInterface(ClassInterfaceType.AutoDual)>

使ClassInterfaceType.AutoDualすることを目的としている回避しを防止するために、会員から継承された'システム。オブジェクトから出などを防ぐ可能性バージョン管理の問題。その代わり、独自に定義すインタフェースの実装インタフェースのクラスは、そのマーククラスのClassInterface'属性の値を'ClassInterfaceType.None'.

E.g.) C#:

[ComVisible(true)]
[Guid("5B88B8D0-8AF1-4741-A645-3D362A31BD37")]
public interface IClassName
{
    double AddTwo(double x, double y);
}

[ComVisible(true)]
[Guid("010B0245-55BB-4485-ABAF-46DF4356DB7B")]
[ProgId("ProjectName.ClassName")]
[ComDefaultInterface(typeof(IClassName))]
[ClassInterface(ClassInterfaceType.None)]
public class ClassName : IClassName
{
    public double AddTwo(double x, double y)
    {
        return x + y;
    }
}

を使用VB.NET:

<ComVisible(True)> _
<Guid("5B88B8D0-8AF1-4741-A645-3D362A31BD37")> _
Public Interface IClassName
    Function AddTwo(ByVal x As Double, ByVal y As Double) As Double
End Interface

<ComVisible(True)> _
<Guid("010B0245-55BB-4485-ABAF-46DF4356DB7B")> _
<ProgId("ProjectName.ClassName")> _
<ComDefaultInterface(GetType(IClassName))> _
<ClassInterface(ClassInterfaceType.None)> _
Public Class ClassName
    Implements IClassName

    Public Function AddTwo(ByVal x As Double, ByVal y As Double) As Double _
        Implements IClassName.AddTwo
        Return x + y
    End Function
End Class

などで使用することにより'ClassInterfaceAtribute'の'ClassInterfaceType.None',受け継がれる。オブジェクト'memebersを除く、クラスのインタフェースがないたバイオエシックスの可視にします。代わりに、実装されたインタフェース('IClassName'この例では輸出されます。

上記のものを使用して'ComDefaultInterfaceAttribute'.これはしたものであり、非常に重要なものを実装する場合のみ二つの指定されたインタフェースと同様、この例では、どちらが良いのかという場合には追加のインタフェース以降などのIDTExtensibility2.

詳細は、参照:

(1) 管理の自動化Add-ins アンドリュー-Whitechapel.

(2) 文書のカスタムExcelワークシートの機能をクライアントまで、フルのC# によるGabhanベリー.

Ok、こんな感じでしたけど(笑)。書き:

私を選COMサーバの 関数の引数[1]ダイアログのない引数の情報とな 説明の機能です。

きの内容 機能しているのでしょうか。

きの内容 パラメータ?

でんをカテゴリ名ん 機能のないもの 以上のProgID?

最も簡単なアプローチはこちらの 願います。MacroOptions 方法。この方法を提供することが可能とな説明の機能を指定するカテゴリ未したいで表示されます。このアプローチできません指定のための情報の機能のパラメータは、残念ながら、技術を許可するかは大変複雑なもの、だ。 [修正:の願います。MacroOptionsの方法でのみ動作のためのUDFsされ、VBAされていますので使用できませんのための自動付加を利用しています。こんにちはより複雑なアプローチを取り扱登録UDFs containe、自動ドイン(add-ins)--マイクRosenblum2009.10.20]

ことに注意 ヘルプファイルのためのExcel2003年ヘルプファイルのためのExcel2007年 る文字列は、引数のカテゴリを提供するためにカスタムカテゴリ名ます。ので注意し ヘルプファイルのためのExcel2002年 います。わからない場合には、漏れのExcel2002ヘルプファイル、またはこれらの能力としてのExcel2003年.私の推測はもうここまでできるようになっていくのか。

のみをわかりやすく伝えるためのパラメータ情報のウィザードを使う複雑な技術に関する'クリックします。願います。ExecuteExcel4Macro'方法です。は注意が必要なもの:多くの優MVPsてきたこのアプローチとしなかった結果が出るまでは信頼性は高い。最近では、ものの、月のカレル-Pieterse(JKP)頂いていたところ、うまくいったので、公開してい内容はこちら 登録ユーザー定義の関数Excel.

澄みというものがあのままだいのではないが、気の弱い人には向かない。一部の問題は言いVBA/VB6.0いる全てのコード行うには次のように変換されVB.NET またはC#.のキー-コマンドし、クリックします。願います。ExecuteExcel4Macroの方法を問わず、提供する。純であるべきますよー。

実際問題として、しかし、私は大幅に好をクリックします。願います。MacroOptionsのアプローチがシンプルで信頼性の高い。提供する事は御座いませんパラメータ情報がありませんどうしたらいいった必要性を強く動機付けるかのExecuteExcel4Macroる。

なので、頑張ってくださいねこが、私のアドバイスを活かした'MacroOptions'な金支払いの時間です。;-)

--マイク

フォローまでのヒの回答

試呼び出し 願います。MacroOptionsサブ New().

なサブNew()セミ許容:機能 上場区分のProgID.

共有のサブニングには合わない可能:ビルド時にエラーとなります。はこの限りではありません "組み立て...\Foo.dll".例外が れによってスローされるという目標 呼び出し.

サブNewきません:カテゴリー 記載のない挿入機能でダイアログを表示します。私はこの疑問も MacroOptionsとのかかわり ルートが推奨するチャールズ.

使用できません(通称"静"の授業ではコンストラクタが自分のクラスCOMでCOMに関する知識が全くないこのコンセプトは、どのようなものを想定しているかをコンパイルします。ることができるかもしれませ適'COMVisibleAttribute'の値は'False'になり、共有コンストラクタは、少なくともすることが可能になるとコンパイル。今なおこの場合はともかく...

登録しようとしおの自動化を追加で経由での自動化を追加で自体が証明する話です。を実現することが望ましいとしても、単独での成分のものとしてにならないことがあります。少なくともこなす。

の問題は、その自動化の追加インは需要が読み込まれます。これにはいろいろな目的がありまで、Excelにアクセスで初のワークシートの機能からの自動化を追加します。ある問題に関連する:

(1)を入れれば登録コード内のコンストラクタのためのクラスは、定義、機能ウィザード情報が存在するのではなまでの機能と呼ばれています。

(2)コンストラクタが実行時にExcelはない自動化しまいます。例えば、自動化の追加は一般的に需要の駆け込みの場合、ユーザーが始まるタイプの名のもとにユーザ定義関数(user-defined function)(UDFsで指定されたオートメーションに追加す。その結果、この細胞は編集モード時に自動追加-初た。い自動コード内のコンストラクタの中で編集モードでは、多くのコマンドに失敗します。わからない場合はをクリックします。願います。MacroOptions"または"クリックします。願います。Excel4Macroボックス内の検索フィールドでないことが多くのコマンドチョークの場合を実行しようとしたところが、細胞は編集モードになります。場合に自動追加された最初の時間ですることが求められていますがら機能ウィザードが開き、わからない場合はこれらの方法です。

あることは容易ではありませリューションなどをご希望の場合には自動ドする完全に独立してあるかないかを問わない。また、管理COM add-inる登録の自動化を追加できまvia'クリックします。願います。MacroOptions'または'クリックします。願います。Excel4MacroのアプローチがExcel]をクリックします。の管理COM add-inすることであった.これに対し同組合せることにより、その自動化を追加できないでいただける必要があります。

ところで、あなたの用VBAのワークブック。XLAョ同使用のワークブック.公開イベントにVBAに登録コードです。だけ 何か 電話でのご登録コードがExcel]をクリックします。中VBAであることができることを活用し、コードからの月のカレル-Pieterseの 登録ユーザー定義の関数Excel 記事ではなくても、翻訳ということです。います。

ミラードバザールとチメンリャ の勧告をインターフェース 実施した殺の迷惑に 別の方法が分に含まれていなかった。

笑嬉しい何かあります。

このMicrosoftから2007年の年初に (マイクのリンク)のような 完全な答えは、トピック:

自動ドイン(Add-ins)の機能 ウィザード

各自動化を追加して、独自の カテゴリExcelの機能ウィザードを閉じます。カテゴリの名称のProgID用 に追加される;の指定はできません 異なるカテゴリ名の自動化 追加ます。また、あ ようがないの指定機能 記述、または引数の説明では、 ヘルプ自動化には追加さ 機能の機能ウィザードを閉じます。

この制限をクリックします。願います。MacroOptionsのアプローチだけます。私のおすっかり忘れてこの制限をクリックします。願います。MacroOptionsの方法に関して自動化add-ins私が私の答えである。) により複雑'クリックします。願います。ExecuteExcel4Macroのアプローチは、しかし、絶対的な作業の自動化を追加し上げます。るものでなければならないのか。純("管理")自動ドイン(add-ins)、Excelいたかどうかは読み込みCOMの自動化を追加で作成したVB6.0/C++のに対し、管理COMの自動化の追加に使用して作成しVB.NET/C#.の力学は同じかCOM側に柵がExcelのない想いてどのようにお考えですか。NETは、.純も存在します。

とはいえ、をクリックします。願います。Excel4Macroのアプローチでもある作品を多く...

他のヒント

きのいずれかをご利用になれます。純ExcelのシステムなどのExcelDNAまたはアドイン表現してみた適応のVBA/VB6ソリューション眺ローランLongreのFunCustomise http://xcell05.free.fr/english/index.html または月のカレル-Pieterseの条 http://www.jkp-ads.com/Articles/RegisterUDF00.asp を使用する機能過負荷hack.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top