1

その場で作成された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)。ありがとう

4

1 に答える 1