• ベストアンサー

VB.NETでのEXCELファイルの閉じ方

VB.NETのプログラミングで開いているEXCELファイルを終了させるため、Quitメソッドで終了させても、タスクマネージャーを見るとEXCELが起動したままになっています。画面からはEXCELは消えています。どうにかして完全に閉じたいので方法を教えてください

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

  • ベストアンサー
  • yotchan2
  • ベストアンサー率61% (8/13)
回答No.2

C#ですが、同じ経験をしました。 // 変数 private Excel.Application app_; // 終了するメソッドでやること。 System.Runtime.InteropServices.Marshal.ReleaseComObject(app_); 上記だけで大丈夫だとは思うのですが、 System.GC.Collect(); System.GC.SuppressFinalize(app_); app_.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(app_); app_ = null; 私の場合は、このようにしています。 また、シート、ブックの変数についても同様の処理をしました。

KamiHotoke
質問者

お礼

ありがとうございます。 試してみます。

その他の回答 (1)

回答No.1

やったことはないが、「Quit メソッド」で検索して出てきた1件目 http://blogs.timberlandchapel.com/blogs/timberlandchapel/articles/category/1013.aspx

KamiHotoke
質問者

お礼

ありがとうございます。 早速見てみます。

関連するQ&A

  • VB.NETで起動させたExcelの多重起動を禁止させるには?

    VB.NETで起動させたExcelの多重起動を禁止させるには? [前提条件] VB.NETには、「Excelを起動させるボタン」と「Excelを終了させるボタン」があるとします。 「Excelを起動させるボタン」によって既存のExcelファイルを起動させ、 「Excelを終了させるボタン」によって起動中のExcelファイルを終了させたいと思います。 Excelを起動している最中は、VBとExcelとでデータの受け渡しをします。 [問題・課題] この方法ですと、「Excelを起動させるボタン」を押下するたびに、同じ既存のExcelファイルを多重起動されてしまいます。 ネット上にある参考文献を調べると、ひとつの関数(?)内で アプリケーション open ⇒ データの吸出し  ⇒ アプリケーション close となっていました。 [前提条件]で述べている使い方で、実現可能な方法があれば教えてください。 (参考になりそうなWebアドレスだけでも構いません) 以上、よろしくお願いします。

  • VBから、エクセルでファイルを開くには・・・

    またまた、お世話になりますm(__)m 環境はVB.net2003、エクセルは2002でプログラミングの勉強、データ処理をしているのですが、VBでエクセルを開き、そのエクセル上でファイル(csvやテキストなど)を開きたいのですが、VB上でどのように書けばよいのでしょうか? VBでエクセルをたちあげたり、bookやsheetを開くことはできました。 どなたかご教授お願いしますm(__)m

  • VB.net(2003)でのexcel操作

    現在vb.netを使用してのExcelそうさプログラミングを作っており、excel sheetへの文字入力はできるようになりました。そこで質問なのですが、excelシートの特定のセルの値が5だった場合にその隣のセルのあたいを10にするというプログラムを作りたいのですが、VBAではとても簡単なのですが、vb.netを使用してどのようにやればよいかがわからないのでご教示いただきたいです。activecell.offset(0,1)やcells.findのような、VBAをVB.netから使用する方法はあるのでしょうか?

  • Excel終了後Excel.exeが止まらない

    Excel2003を使用してますが Excelを終了してもタスクマネージャのプロセス一覧でExcel.exeが動いたままになっています。 しかも閉じてからの方がCPU使用率が上がりずっと100%近くのままです。 しかも新たにExcelファイルを開くとExcel.exeが2つ表示され さらに3つ開くとExcel.exeが3つ表示されます。 この時点でExcelのエラーが発生しましたと表示され エラーを送信する、しないの画面が出ます。 パソコンを再起動してもExcelを開くと同じ症状となってしまい困っています。 ご回答宜しくお願いします!!

  • VB.NETからエクセルを起動して、エクセルでVBを閉じたい。

    こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m

  • VB2005 で立ち上がった状態のEXCELファイルからデータ読込みだけしたいのですが

    どなた様かお助けください。VB2005を勉強中の素人です。 既に立ち上げた状態のEXCELファイルから単純に特定セルの数値をVBのラベルに読み取りたいだけなのですが、ネットや書籍にてVBでのEXCEL読込み方法について調べたのですが、どこの情報をみても、EXCELの立ち上げとクローズがセットになっており、既にEXCELファイルを開いた状態からでは2重起動となり、読み込みだけの仕方が分かりません。一応下記でファイルのオープンからのクローズまでができるようですが、[open]のところを取り除くとエラーになってしまいます。 ファイル名とセルだけが私の指定したい条件なのですが、なにか単純な読み取り方法はないでしょうか? というか私がアホすぎるのも原因だとは思いますが、ちょっとEXCEL情報読み込ませたかっただけなのにもう2日も悩んでおり、こんなに難しいとは思いませんでした。VBって初心者向けとかいわれていますけど6.0やら.netやらと情報が分散していて何するにも一苦労ですね。  いろいろ調べて下記のコードで最低限読み込みはできるようになりました。(短いコードが好きなので宣言とかはかなり除去しているからかな?時々表示されるセルデータもおかしくなります) EXCELオブジェクトライブラリの参照は済です。 ファイルのオープンとクローズを除去し最終的には立ち上げっぱなしのEXCELから単純な読込み(のみ)を1秒に1回程度繰り返してラベル表示を随時更新するのが目的です。ご助言お願いします。 Dim xlApp As New Excel.Application Dim xlFilePath As String = "C:\あつし\sample.xls" label1.Text = xlApp.Workbooks.Open(xlFilePath).Worksheets.Item(1).Range("A3").Value() xlApp.Quit()

  • VB.NET操作で Excelにビットマップ貼り付け

    下記の環境で開発しています。 VB.NET 2005/XP(sp2)/Excel2003(sp2) ビットマップをExcel2003に貼り付けたいのですが、どなたか手法ご存知ないでしょうか? 画像ファイル(Bitmap)→画面に表示→Excelに画像ファイル(Bitmap)を出力といったイメージなのですが… ※Excelを起動して、名前を付けて保存は今のところ上手くいってるようです。

  • vb.netでのExcel表示

    お世話になります。 vs2005、vb.Netを使用し、webアプリを作成しています。 webserverにアップした複数シートのExcelファイル(.xls)を、 上下にフレーム分割されたフォームの下部に表示したいのですが、 なかなかうまくいきません。 まず、ExcelファイルのパスをJavaScriptにて下部フレームに表示するようにしました。 この方法で試したところ、対象のフレームにExcelファイルが展開され、シートの遷移等も実装できました。 ところが、その画面が表示中に別のExcelを起動すると、 別起動したExcelと、Excelファイルを表示してるアプリが混同してしまい、 正常に動作しなくなってしまいました。 (切り替えようとしても、アプリのExcelが優先されてしまう) プロセスを確認したところ、1つのexeしか確認できなかったため、 これも関係していると思うのですが・・・ あと、Excelファイルをhtmlにして表示する方法があると聞いたことがあるのですが、 こちらも、もしご存知の方がおりましたら、お教え願います。 抽象的な質問で申し訳ありませんが、ご教授お願いします。 また、参考になるようなサイト等ありましたら、合わせてお願いします。

  • 処理後、Excelファイルを開くとうまく立ち上がりません

    原本となるExcelファイルをコピーして、 VBの画面内容をコピーしたExcelファイルに展開させる、 と言うプログラムを作りました。 処理を終了して、プログラムが 立ち上がった状態で、Excelファイルを開くと うまく立ち上がりません。 (Excelファイルの表示がおかしくなってしまいます) タスクマネージャを見てもリソースは食っていないし、 他のアプリ(Word、IE、Outlook等)は普通に開けます。 OSのフリーズも起こりません。 ソースを見ないと判断が付きにくいと思われますが、 発生要因等がありましたら回答願います。 備考として、各スペックと処理フロー概要を記載します。 【各スペック】 OS:Win2000 SP1 VB:VB6.SP5 Excel:Excel2000 CPU:pentium3 1GHZ RAM:256KB 【処理フロー概要】 1:原本ファイルが開いているかチェック 2:原本ファイルをコピー 3:コピーしたファイルを開く 4:画面内容→コピーしたファイルのシートの各セルに展開 5:コピーしたファイルをセーブ 6:コピーしたファイルをクローズ 7:新しいファイル名を作成 8:コピーしたファイルを新しいファイル名にリネーム

  • VB6でEXCELをクローズ出来ない

    VB6でEXCELを使用した後クローズ処理をしたつもりですが、VBと別にEXCELを起動しVBで使ったEXCELを読み込もうとすると、「編集のためロックされています」とメッセージが出て、読み取り専用でしかオープン出来ません。また、VBでEXCELを繰り返しオープンするとメモリがいっぱいになってしまいます。 VBでのEXCELオープンは Dim fnm As String Dim exl As Object fnm = "EXCEL File名" 'フルパスで指定 Set exl = CreateObject("Excel.Application") exl.Application.Workbooks.Open FileName:=fnm クローズは Set exl = CreateObject("Excel.Application") exl.Application.Quit Set Sheet = Nothing Set BooK = Nothing Set ExcelApp = Nothing 以上です。なお、VBの参考書は入門書だけ持っていますが、このようなことは書いてありません。従って上のコードも意味もわからず、ネットから拾ってきたまま使用しています。参考書または、Webサイトを紹介して頂ければ有り難いです。

専門家に質問してみよう