• ベストアンサー

C# にてエクセル操作について

様々なサイトで探したが見当たらないのでここに投稿しました。 内容はC#とエクセルを連携したい。 新たにEXCELを立ち上げるのではなく、現在開いてるEXCELを利用しそこにC#のTEXTBOXに書かれた文字をエクセルに入力したい。 セルを選択しそこに張り付けるようなプログラムが分らない。 どなたかお願いしたいのですごく困っています。お願いいたします。

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

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

私もやったことが無かったので調べてみました。 下記の方法では参照設定を行いますのでEXCELのバージョンは固定になります。 1.プロジェクト→参照の追加→COM→Microsoft Excel xx.x Object Library 2.名前空間をインポート using Excel = Microsoft.Office.Interop.Excel; 3.変数の宣言 Excel.Application oXls; Excel.Workbooks oWBooks; Excel.Range oRange; Excel.Worksheet oSheet; 4.既に開いているExcelを取得するには、GetActiveObjectを使う oXls = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 5.ワークブック取得 oWBooks = (Excel.Workbooks)oXls.Workbooks; 現在開いている全てのEXCELファイルへの参照が取れる 6.書き込みしたいシートを指定 oSheet = (Excel.Worksheet)oWBooks[1].Worksheets[1]; ブックとシートの名称が決まっているなら名称で指定すること 7.書き込みしたいセルの範囲を指定 oRange = oSheet.get_Range("A1:A1", Type.Missing); この辺りはVBAと同じ 8.テキストボックスの文字を書き込み oRange.Value2 = textBox1.Text;

参考URL:
http://social.msdn.microsoft.com/Forums/ja-JP/csharpexpressja/thread/5bd6df14-d07f-4ba6-a77f-d1404ef919af
ndcken
質問者

補足

回答ありがとうございます。 あの、エクセルへ書き込みはできましたが、セルを選択しそこに入力したいのですが、どうしたらできますか? 決められた場所ではなくユーザーが希望のセルへ選んだ時に処理したいのです。 oRange = oSheet.get_Range("A1:A1", Type.Missing); これだと決められたセルへ書き込みになるので・・・ ご指導お願いいたします。

関連するQ&A