• ベストアンサー

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

  • C#でエクセルのようなものを作りたい

    C#を使って、エクセルのようなツールを作ることはかのうでしょうか? セルに計算式を入力して結果を表示するところまで必要ではありませんが、 ウィンドウにはズラッとセルが並んでおり、 セルに文字を入力したり、選択したセルに入力されている文字を取得したいです。 よろしくお願いします。

  • エクセル2010のマウス操作について

    ウィンドウズ7でエクセル2010を使用しています。 エクセルのマウスなのですが セルを選択した時にすぐ入力モード?になってしまい、セルの選択がうまくいきません。 例えば、左クリックした状態でA1~C5までを選択しようとすると ・C5にカーソルが移動し、範囲選択ができなかったりします。 ・A1に文字を入力する状態になったりもします。 ←これが1番多いです。 ・なぜかコピーしてセルの内容をおきかえますか?と聞かれたりもします。 ・シフトキーやコントロールキーでセルを選択させれば、範囲設定ができます。 マウスで上手に範囲設定をするにはどう設定すればよいのでしょうか。

  • エクセルVBA ブック間の操作・保存について

    エクセルVBAで次の内容でプログラムしたいと思っていますが、どうもうまくいきません。 1.BOOK1のsheet1のセルC10・セルE10に文字入力 2.1のセルE10に文字入力し確定後、BOOK2が自動的に開く 3.BOOK2・sheet1・セルC4にBOOK1・セルC10の文字を取得 4.BOOK2・sheet1・セルH4にBOOK1・セルE10の文字を取得 5.BOOK2に「(秘)セルC10の文字+(セルE10の文字)・xlsx」で名前を付けて保存 6.BOOK1のsheet1のセルC11・セルE11に文字入力 7.6のセルE11に文字入力し確定後、BOOK2が自動的に開く 8.BOOK2・sheet1・セルC4にBOOK1・セルC11の文字を取得 9.BOOK2・sheet1・セルH4にBOOK1・セルE11の文字を取得 10.BOOK2に「(秘)セルC11の文字+(セルE11の文字).xlsx」で名前を付けて保存  以降BOOK1 セルC12~C29、セルE12~E29まで上記を繰り返す  ※セルC、Eの文字入力は29行まで入力されないこともある という感じでBOOK1の決められたセルに入力された文字を BOOK2へ独立した形で振り分け、それぞれ名前をつけて保存していきたいです。 1~4までは何とかできたのですが、ファイル名をつけて保存と、以降の繰り返しが いろいろ参考にしたのですが、うまくいきません。 初歩的な内容で申し訳ありませんが、ご教授お願い致します。

  • エクセルの文字入力ボックスがありません

    現在エクセル2003を利用しております 通常エクセルの指定のセルに文字を入力すると エクセルのウィンドウ上部にある入力ボックスに同じ内容の文字が出て (ツールバー内) それを編集することによってエクセルのセルの文字を編集できますが 僕のエクセルではこの文字入力ボックスが ウィンドウ上部に出てきません どのように設定すればこのような文字入力ボックスが出てくるようになるのでしょうか?

  • Excel操作

    excelについて知っている方がいましたらお教えください。 例 シートの格セルに一覧数字が入っています。 そのセルを選択し、たとえばボタンを作成し、 押すとアプリケーションが起動し、セル選択した 数字が入力される よろしくお願いします

  • エクセルの基本操作について教えてください。

    エクセルの基本操作について教えてください。 (1)セルの区切り線を消さずに、自分で選択した複数のセルの色を変える(文字ではなくセルそのもの)にはどうすればいいでしょうか?複数のセルの色を変えようとすると、区切り線が消えてしまってちょっと見にくいなと困っています。 (2)また、自分独自の計算式をエクセルに入力する際、=B4-(D4+E4)などを入力しなければいけませんが、これをセルの行ごとに=B5-(D5+E6)や、=B6-(D6+E6)と入力していくのがかなり面倒なので、=B-(D+E) という形で列の数式を固定するにはどのようにすればいいでしょうか?

  • エクセルvbaセル範囲について

    困っております。 ご教授ください。 エクセルシート上に1~10の数字が列方向に並んでいます。 ユーザーフォームでtextbox1とtextbox2を作成します。 textbox1とtextbox2は1~10の間で範囲を入力します。 textbox2でエンターを押されたときに処理が開始します。 例えばtextbox1に「3」、textbox2に「8」が入力された場合、 3,4,5,6,7,8のセル範囲を選択したいのですがどのようにすればよろしいでしょうか。 よろしくお願いします。

  • VB2005でExcelのアクティブセルに文字を入力したあとに

    VB2005初心者です。 VB2005のTextBox1に表示された文字をExcelのActiveCellに入力するプログラムを先ほど教えて頂きました。 そのあとの追加動作でActiveCellに文字を入力した後、ActiveCellを一段下げ、TextBox1の文字が変化したらActiveCellに変化した文字を入力するような繰り返し処理をさせるにはどのようにプログラムすればいいのでしょうか? 以下のコードはTextBox1の文字をActiveCellに表示させるプログラムです。ここにどのように追加すればいいのか教えて頂けませんでしょうか? Dim xlApp As Object = GetObject(, "Excel.Application") xlApp.ActiveCell.value = TextBox1.Text xlApp = Nothing どうぞよろしくお願いいたします。

  • Excelの操作について

    Excelについての質問です。ご存知の方教えて下さい。 Excelを開いた画面のツールバー?(呼び方不明)。 上段左のセルをアクティブにした時にセルの番地を表す 白い欄(セルに入力した文字を表示する欄)です。 それに最下段の、「コマンド又は、入力」と表示される スペースが、私には不要なのですが。 消す(表示しない)ことが出来ますか。 方法があるなら教えて下さい。

  • EXCELの

    EXCELの"セルの文字入力"で解決できないか? と思い投稿しました。 EXCELのセルに文字入力して、Enterを押した後に セルの右端(文字の末尾)にカーソルがあります。 その時、入力済みの文字で打ち忘れた文字があり、 矢印キー(←)を押して左に動かそうとすると、 いきなり、左のセルに移動してしまいます。 これが結構、目的の入力場所にカーソルを移動する(戻す)のに 手間がかかり文字入力の際、悩ましく思っています。 文字入力後Enterでセルに残っているカーソルを 同セル内の左側に一文字づつ移動させる方法が あったら教えてください。 EXCELの達人の方々、よろしくお願いします。

専門家に質問してみよう