• ベストアンサー

C#によるExcel操作

お世話になります。 VC#2010ExpressでExcelを操作するプログラムを組んでいます。 アクセスして読み書きするところまではできましたが、 下記の三点が解りません。ご教授ください。 1.特定のセルの書式設定を『通貨』にする方法 2.指定したシートの任意のRowにオートフィルタを設置する方法 3.指定したセル位置で『ウインドウの分割、解除』、『ウインドウの固定』を行う方法 以上、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ExcelをC#から扱う,つまりExcelをCOMでオートメーションするというのは, 内部のVBAで記述するのとほとんど同じ方法で可能です。 このため,操作をマクロで記録してVBAコードを見るのが, オートメーション方法を知る一番簡単な方法になります。 1. Range.NumberFormatLocalに通貨用の書式を代入します。 ref) http://msdn.microsoft.com/ja-jp/library/office/ff840206(v=office.15).aspx in VBA Selection.NumberFormatLocal = "\#,##0;\-#,##0" in C# // Range r; r.NumberFormatLocal = "\\#,##0;\\-#,##0"; 2. Range.AutoFilterを呼び出します。 ref) http://msdn.microsoft.com/ja-jp/library/office/ff193884(v=office.15).aspx in VBA Range("A1").Select Selection.AutoFilter in C# // Range r; r.AutoFilter(); 3-1. 分割および解除:Window.SplitColumnおよびWindow.SplitRowを指定します。 ref) http://msdn.microsoft.com/ja-jp/library/office/ff822347(v=office.15).aspx ref) http://msdn.microsoft.com/ja-jp/library/office/ff837128(v=office.15).aspx in VBA With ActiveWindow .SplitColumn = 1 .SplitRow = 3 End With With ActiveWindow .SplitColumn = 0 .SplitRow = 0 End With in C# // Window w; w.SplitColumn = 1; w.SplitRow = 3; // Window w; w.SplitColumn = 0; w.SplitRow = 0; 3-2. ウィンドウ枠の固定:Window.FreezePanesにtrueを指定します (解除はfalse)。 ref) http://msdn.microsoft.com/ja-jp/library/office/ff841228(v=office.15).aspx in VBA ActiveWindow.FreezePanes = True in C# // Window w; w.FreezePanes = true;

tatapatank
質問者

お礼

詳しい回答とご説明、ありがとうございました。 早速試してみたいと思います。 本当に助かりました。 ありがとうございました。

関連するQ&A