VSTO
VS2008 SP1
.NET 3.5
Excel 2007
私は.net初心者です。vstoアドインのThisAddIn_Startup()メソッドのvstoアドイン内から、Excelアプリケーション/自動化アドイン(xlaまたはxllではなくdll)である自動化アドインをロードしようとしています。グーグルから私は動作していない以下の解決策を得ました。
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application excel = Globals.ThisAddIn.Application;
//Also tried without display alerts being set to false
excel.DisplayAlerts = false;
foreach (AddIn addin in excel.AddIns)
{
if (addin.progID.Equals("MY_ADDIN_PROG_ID"))
{
Debug.WriteLine("Addin installed is " + addin.Installed);
addin.Installed = false;
Debug.WriteLine("Addin is: " + addin.FullName + ", " + addin.progID);
Debug.WriteLine("Addin installed is " + addin.Installed);
}
}
AddIn addIn = excel.AddIns.Add("MY_ADDIN_PROG_ID", false);
addIn.Installed = true;
excel.DisplayAlerts = true;
Debug.WriteLine("Addin is: " + addIn.FullName + ", " + addIn.progID);
Debug.WriteLine("Addin installed is " + addIn.Installed);
excel.DisplayAlerts = false;
//OTHER STARTUP CODE
Debug.WriteLine("Starting up addin!");
}
起動時にaddin.installedがfalseに設定され、trueに戻っていることがわかりますが、ワークシートにアドインからudfsを入力しようとすると、後でbutton_clickメソッドでロードしようとすると、#NAMEが表示されますか?エラー。私は私の知恵の終わりにいます。どんな助けでも大歓迎です。
ボタンクリックメソッドを呼び出す前に、最初に手動でセルに入力してudfをExcelで呼び出そうとすると、ワークシートの作成が機能し、udfsが期待どおりに評価されますが、これは理想的ではありません。
また、インストール済みプロパティをtrueに設定しても、udfアドインがExcelで非アクティブであることがわかるため、何も実行されていないようです。セルに入力した場合にのみ、アクティブになります。vstoスタートアップで自動化アドインをアクティブ化するために他に必要なことはありますか?
ありがとう!