
初めまして。
仕事で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)
{
/***********************************************************/
// ここで、ボタンを削除して保存したい
/***********************************************************/
}
}
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
以下のようなサポートソフトがあります。
(個人で買うのは、ちょっとキツイですけど、仕事ならOKでしょう)
もしかすると、フリーで同様なソフトがあるかもしれませんが、やはり使いやすさ、信頼性を考えると、商品のほうがいいと思えます。
http://www.adv.co.jp/products/product_ExcelCreat …
エクセルというか、Officeのファイルは複雑怪奇ですからね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
[VB.net] ボタン(Flat)のEnable...
-
VBA(エクセル)で自動的にボタン...
-
バックスペース機能の作り方
-
C#プログラムで、ボタンをショ...
-
Vba 電卓 一文字消すボタン
-
コマンドボタンやイメージにマ...
-
VBAでオプションボタンによって...
-
VBA CommandButtonの文字ずれ
-
DO~LOOP でのLOOP...
-
VBAのボタンの位置が変わって困...
-
閉じると「+」になり開くと「-...
-
アイコンとボタンの違い
-
C♯初心者で、四則演算の電卓を...
-
フォームの再読み込み
-
ボタン上にビットマップ、アイ...
-
コマンドボタンの長押し
-
プロシージャからイベントをコ...
-
VB.NET テキストボックスの入力...
-
ビットマップハンドルからビッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
C#プログラムで、ボタンをショ...
-
VBAでオプションボタンによって...
-
Excel VBA Application.caller...
-
VBA CommandButtonの文字ずれ
-
VBAで多数のプログラムを一つの...
-
フォームの再読み込み
-
アイコンとボタンの違い
-
コマンドボタンやイメージにマ...
-
ボタンをマウスで押し続けたと...
-
ASP.Net ラベルの内容をすぐに...
-
閉じると「+」になり開くと「-...
-
[VB.net] ボタン(Flat)のEnable...
-
セルをマクロのボタンにしたい。
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
Excel マクロ 閉じるボタン
-
TextBoxでEnterキーを押すと、...
おすすめ情報