初めまして。
仕事で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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
アイコンとボタンの違い
-
VBA CommandButtonの文字ずれ
-
プロシージャからイベントをコ...
-
フォームの再読み込み
-
ボタンをマウスで押し続けたと...
-
VBAで多数のプログラムを一つの...
-
入力されたかどうか、オプショ...
-
Excel VBA Application.caller...
-
VBA IE通知バーの制御 バー内の...
-
VBA マクロでの網掛けについて
-
3つのオプションボタンの場所...
-
C#でSendInputを使ったサンプル...
-
[VB.net] ボタン(Flat)のEnable...
-
フォームのアイコンが行方不明...
-
Vba 電卓 一文字消すボタン
-
vb.net タイマーに引数を渡す
-
【VBA】Accessを終了する前にメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
フォームの再読み込み
-
VBA CommandButtonの文字ずれ
-
アイコンとボタンの違い
-
Excel VBA Application.caller...
-
コマンドボタンやイメージにマ...
-
閉じると「+」になり開くと「-...
-
VBAのボタンの位置が変わって困...
-
[Excel VBA]コマンドボタンの入...
-
VB.net でトグルボタンを実現し...
-
Access VBA でデータペーストを...
-
セルをマクロのボタンにしたい。
-
ボタンをマウスで押し続けたと...
-
VBAで多数のプログラムを一つの...
-
プロシージャからイベントをコ...
-
ASP.Net ラベルの内容をすぐに...
-
TextBoxでEnterキーを押すと、...
-
他フォームのクリックイベント取得
おすすめ情報