Excel のアドインのプログラミングで奇妙な問題が発生しました。Excel にコントロールを追加したいのですが、このコードを使用して刺激を受けましたhttps://msdn.microsoft.com/en-us/library/cc442817.aspx
private void button_Click(object sender, RibbonControlEventArgs e)
{
var worksheet = (Worksheet)Globals.ThisAddIn.Application.ActiveSheet;
{
const string buttonName = "MyButton";
if (((RibbonCheckBox)sender).Checked)
{
var selection = Globals.ThisAddIn.Application.Selection as Range;
if (selection != null)
{
var button =
new Microsoft.Office.Tools.Excel.Controls.Button();
worksheet.Controls.AddControl(button, selection, buttonName);
}
}
else
{
worksheet.Controls.Remove(buttonName);
}
}
}
しかし、ワークシートのコントロール メソッドは利用できず、アクセスできません。Microsoft.Office.Tools.Excel.v4.0.Utilities.dll アセンブリと次のステートメントを追加しました
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Tools.Ribbon;
using Office = Microsoft.Office.Core;
ちなみに私はoffice 2007とvs 2013を使っているので、DebugInfoExeNameでofficeのバージョンを12に変更しました。