初めまして。
仕事で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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
Excel VBA Application.caller...
-
VBA CommandButtonの文字ずれ
-
コマンドボタンやイメージにマ...
-
CommandButtonのCaptionを変化...
-
VBA マクロでの網掛けについて
-
TextBoxでEnterキーを押すと、...
-
VB2010 クリック数カウント
-
C#で動的に作ったtextboxを消す。
-
Access VBA でデータペーストを...
-
C♯初心者で、四則演算の電卓を...
-
VB.net webアプリケーションで...
-
バックスペース機能の作り方
-
VBA でのボタンの移動について
-
ボタンをマウスで押し続けたと...
-
ユーザーフォームに別シートか...
-
プロシージャからイベントをコ...
-
ボタン上にビットマップ、アイ...
-
VBAのボタンの位置が変わって困...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
Excel VBA Application.caller...
-
コマンドボタンやイメージにマ...
-
Access VBA でデータペーストを...
-
VBAのボタンの位置が変わって困...
-
ボタンをマウスで押し続けたと...
-
ボタン
-
C#プログラムで、ボタンをショ...
-
VBA でのボタンの移動について
-
閉じると「+」になり開くと「-...
-
ダウンロードダイアログをVB...
-
[Excel VBA]コマンドボタンの入...
-
ASP.Net ラベルの内容をすぐに...
-
プロシージャからイベントをコ...
-
CommandButtonのCaptionを変化...
おすすめ情報