• 締切済み

C#でExcel上にボタンを作成したい

初めまして。 仕事でC#とExcelを使ったアプリケーションの開発を行うことになったのですが、C#側からExcelの操作方法がわからず困っています。 行いたいことは以下のとおりです。 1)C#のプログラムでExcelファイルを開く 2)開いたExcelには、マクロやボタンなどはない 3)C#のプログラムで、Excelファイル上にボタンを作成する   ※フォームでもコントロールでも可。 4)Excelファイル上に作成されたボタンが押されたら、C#側の関数が実行されるようにする   ※Excelにマクロは作らない 5)Excelファイルを閉じたときに、追加したボタンを削除して保存する 6)C#のプログラムを終了する 恐れ入りますが、みなさんの知恵を貸してください。 public partial class MainForm : Form { Excel.Application xlApp; Excel.Workbook xlBook; Excel.Worksheet xlSheet1; Excel.AppEvents_WorkbookBeforeCloseEventHandler EventDel_BeforeBookClose; public MainForm() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { xlApp = new Excel.ApplicationClass(); xlBook = xlApp.Workbooks.Open("c:\\a.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); xlSheet1 = (Excel.Worksheet)xlBook.Worksheets.get_Item(1); EventDel_BeforeBookClose = new Excel.AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose); xlApp.WorkbookBeforeClose += EventDel_BeforeBookClose; /***********************************************************/ // ここで、xlSheet1 に // Excelのフォームまたは、コントロールのボタンを追加したい // また、そのボタンのClickイベントを登録したい(MButton_Click) /***********************************************************/ xlApp.Visible = true; xlApp.UserControl = true; } /// Excel上に作成したボタンのアクション private void MButton_Click() { Debug.WriteLine("MButton_Click"); } private void BeforeBookClose(Excel.Workbook Wb, ref bool Cancel) { /***********************************************************/ // ここで、ボタンを削除して保存したい /***********************************************************/ } } }

みんなの回答

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

以下のようなサポートソフトがあります。 (個人で買うのは、ちょっとキツイですけど、仕事ならOKでしょう) もしかすると、フリーで同様なソフトがあるかもしれませんが、やはり使いやすさ、信頼性を考えると、商品のほうがいいと思えます。 http://www.adv.co.jp/products/product_ExcelCreator2007_system.htm エクセルというか、Officeのファイルは複雑怪奇ですからね。

関連するQ&A

専門家に質問してみよう