その場で作成されたExcelシートにコンボボックスまたは実際のフォームコントロールを追加しようとしています。C# で Excel ワークブック プロジェクトを作成するときに Excel シートにコンボボックスを追加でき、ドキュメント レベル (Sheet1) で Controls.AddComboBox 関数にアクセスできました。
namespace ExcelWorkbook2{
public partial class Sheet1{
private void Sheet1_Startup(object sender, System.EventArgs e){
Microsoft.Office.Tools.Excel.Controls.ComboBox comboBox1
=this.Controls.AddComboBox(this.Range["A1", "A1"], "comboBox1");
comboBox1.Items.Add("1 Item");
this
このコードは、ワークブック プロジェクトを作成するときは正常に機能しますが、その場で Excel シートを作成するときは次のようになります。図 2
Application xlApp = new Application();
xlApp.Visible = true;
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
WorkSheet (ws) に移動して「controls.AddCombobox」を取得できません。ワークシート (図 2) をクイックウォッチに入れると、System.___Comobject が他のプロジェクト (図 1) の「this」オブジェクトを返し、値 (ExcelWorkbook2.Sheet1) が返されます。c# で生成されたワークシートで使用する WorkSheetBase としてキャストされた Controls.AddCombobox にアクセスするにはどうすればよいでしょうか (図 2)。ありがとう