質問

i <!>#180; m MS Visual Studio 2008を使用してVB.NETで自動化アドインと組み合わせたvstoアドインをプログラミングします。 自動化アドインはExcelでアクティブ化され、システムに登録されます。基本的にオートメーションアドインは非常に良好に動作します。関数を呼び出すときに

"=<function-name>(<argument1>;<argument2>;...;<argument-n>)"

Excelセルに書き込むか、関数ウィザードを使用して。

vstoアドインは、コマンドバーボタンを介してwindows-formを開始するために使用され、ユーザーは必要な引数を入力できます。ユーザーが終了すると、ビルドされたセルに文字列が書き込まれ、上記の例のようになります。

i <!>#180; mと戦っている問題は、ユーザーがExcelを起動するときです。windows-formを使用して文字列を生成し、<!> quot; ok <!> quotをクリックするだけです。セルを埋めるために、Excelは<!> quot; = <!> quotの関数原因を見つけようとします。セル内にありますが、見つけられません。 functionwizard-listを調べた後、登録された関数が消えたため、セルでは最終的にName?になります(ただし、アドインは<!> quot; extra-<!> gt; add-ins <! > quot;また、次のexcelstart後に再びロードされます)

しかし、ユーザーが関数の値を取得するために最初に関数ウィザードを使用する場合は、セルに手で入力するか、関数を使用せずに関数ウィザードを開いてすぐに閉じますフォームで生成された文字列は機能します。

onButtonClick-eventは、次のサンプルコードを実行します。

Me.Application.ActiveCell.Value = "=FUNCTION(""value1"";""value2"")"

だから私の質問は、ユーザーが最初に文字列ジェネレーターを使用するだけで自動化機能が消えるのはなぜですか?

いくつかのアドバイス、あるいは私の問題が解決することさえあります。

Greetings Martin

役に立ちましたか?

解決

大丈夫、

他のコードの検索とテストに1週間成功しなかった後、自分で問題の原因を見つけました。私は<!>#180; tがexcelがリストから関数を追い出す理由を知りませんが、以下の説明は問題を解決しました。

コードで関数を呼び出そうとして2つのミスをしました。最初は、セルに書き込む間違った方法を選択したことです... <!> quot; me.application.activecell.formula <!> quot;を使用してください。

2番目の最も重要な理由は本当の原因であり、すべてがうまくいきませんでした。すべての引数、セミコロン、角かっこなどを1つの文字列に設定しようとすると、Excelは計算モードで文字列を読み取り、数式のセミコロンに達したときに何か問題を起こします。これにより、単なる障害が発生したというコメクセプション(HRESULT:0x800A03EC)が発生しました。

excelはこの時点でセミコロンを読み違え、例外をスローします。偶然、私はセミコロンを式に設定してパラメータを分離する解決策を見つけました。 <!> quot;と書くだけです。 <!> quot;、<!> quot; <!> quot; <!> quotの代わりにコードに; ; <!> quot;。

i <!>#180;私の解決策が同じ問題を抱えている他の開発者を助けてくれれば幸いです。

greetings martin

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