• 締切済み

Excelが終了終了しない!

またまた困っています。 VBからのExcelファイル操作、たしかに処理上はうまく行っているのですが... ExcelApp.Quit Set ExcelApp = Nothing デバッグしてみても、きちんとメモリ開放されていました。 が、vbFormをCloseせずに同一処理(別Excelファイル)を行うと 『Withブロックが定義されていません』と怒られました(>。<) Ctl+Alt+Delでプログラム強制終了画面を見ると、何故かそこには、Closeしたはずの『Excel』の文字が... 神様、仏様、ARC様~(頼りにしています、師匠!(笑))

みんなの回答

  • Richi
  • ベストアンサー率0% (0/0)
回答No.1

Excelのオブジェクトには階層がいくつかあるので 開放していないオブジェクトが存在しているかも 知れません。(例えばWorkSheetオブジェクトとか。) ExcelAppオブジェクトだけでなく他に使用している オブジェクトを開放してあげると良いかも。

rukaandkaito
質問者

お礼

ありがとうございますm(__)m もう回答はこないと思って諦めていました 早速試してみます!

関連するQ&A

  • VB6からExcelを操作する

    VB6.0からExcelの操作をしています。 そのなかで、Excelシートを印刷したいのですが、どのようにしたら良いのでしょうか。 また、ExcelVBAのFunctionやSubを実行するにはどのようにするのでしょうか。 VB6.0内でExcel操作は次のようにしています。 Dim ExcelApp As Object Dim EWorkbook As Object Dim ESheet As Object Set ExcelApp = CreateObject("Excel.Application") Set EWorkbook = ExcelApp.Workbooks.Open(ExcelBookFlNm) Set ESheet = EWorkbook.Sheets(M_SheetNm) Set ESheet = Nothing Set EWorkbook = Nothing ExcelApp.Quit Set ExcelApp = Nothing よろしくお願いします。

  • 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サイトを紹介して頂ければ有り難いです。

  • Excelが終了しません

    VB初心者です。 以下のコード(実際のものと根幹は同じです)でExcelを扱いたいのですが、 終了の処理をしている(つもり)にも関わらず、EXEを終了するまで Excelが終了してくれません。 画面上は終了しているのですが、EXE起動中にxlsファイルを開くとシートを表示してくれないのです。 どなたか正しい方法を教えてください。 Dim xlbook As Excel.Workbook Dim xlsheet As Sheets Dim H As Integer Dim W As Integer H = ImNumber1.Text W = ImNumber2.Text Set xlbook = CreateObject("Excel.sheet") Set xlsheet = xlbook.Worksheets Workbooks.Open App.Path & "\稼動確認.xls" Worksheets("稼働確認書").Activate xlbook.Application.Visible = True xlsheet.Application.Cells(H, W).Value = ImText1.Text ActiveWorkbook.Save Workbooks.Close xlbook.Application.Quit Set xlbook = Nothing Set xlsheet = Nothing

  • アクセスからエクセルファイルを全て閉じたい

    アクセスからエクセルファイルを全て閉じるにはどうすればいいでしょう?(保存して閉じたいです) エクセルファイルは名前やファイル数はランダムです。 アクセスの標準モジュールに Sub Test1() Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") ExcelApp.Application.Visible = False Set ExcelApp = Nothing End Sub と書きました。 このあいだにコードをいれるのですが 思いつきません。 まず数を取得して 一つ一つ保存→閉じるかな?と思い MsgBox ExcelApp.Worksheet.Count を入れてみましたが エラーになりました。 オフィスのバージョンは2003です。 ご教授よろしくお願い致します。

  • Excelの表示について

    DBからデータをcsvに落とし、それをExcel表示させたいのですが、 Excel出力後、すぐに起動しようとすると、Excel自体は起動するのですが、 データが表示されません。 アプリケーション終了後にExcelを起動すれば問題なく開けます。 Excelまたはcsvの後処理の仕方が悪いのでしょうか? どなたかわかる人がいましたら教えてください。 'csvからExcelへ出力する処理が入る mxlBook.Save '変更を保存 mxlBook.Close mxlApp.Quit 'Excelから抜ける Set mxlBook = Nothing Set mxlApp = Nothing 'CSVファイルの読込み Set tsText = fsoFSO.OpenTextFile(strFileName, ForReading, False) varData = tsText.ReadAll 'DBへの格納 deTest.cnTest.BeginTrans strSQL = "SELECT * FROM CSV1" Set rsRS = New ADODB.Recordset rsRS.Open strSQL, deTest.cnTest, adOpenStatic, adLockPessimistic With rsRS .AddNew 'アップデートの処理が入る .Update End With rsRS.Close deTest.cnTest.CommitTrans tsText.Close 'CSVファイルをクライアントマシンから削除 fsoFSO.DeleteFile strFileName Set fsoFSO = Nothing Set rsRS = Nothing

  • EXCELを自動的に終了したい

    VBAマクロで処理をして、終了後に開いたブックを自動的に終了させるため、 Application.Quit を使用しましたが、 他に開いていたブックも終了してしまいます。 ActiveWorkbook.Close に変更すると、 他にブックを開いていない場合、自動的にブックは終了しますが、EXCELが終了しません。 該当のブックだけを終了することは、できないでしょうか?

  • 既に開いているエクセルを閉じるには?

    既に該当のファイルが開いているのなら閉じたいのですが xlBook.Quitだとエラーになります。 Sub test1() Dim xlApp As Excel.Application Dim xlBook As Workbook Dim FileName As String FileName = "C:\test.xlsm" Set xlApp = GetObject("", "Excel.Application") 'GetObjectで合ってるか不安 Set xlBook = xlApp.Workbooks.Open(FileName) If xlBook.ReadOnly = True Then 'ファイルが開いてるのなら MsgBox "既にファイルが開いているので閉じます。" xlBook.Quit 'エラー 438 End If xlApp.Quit 'これって何のために必要? Set xlBook = Nothing 'ココを通り過ぎるのにすごく時間がかかる。 Set xlApp = Nothing End Sub と言うコードを作りました。 xlBook.Quitがダメならどのコードを使えばいいでしょう? また、 GetObject("", "Excel.Application") と言う開き方でいいのでしょうか? あと、 xlApp.Quit は何のために必要なのでしょう? タスクマネージーのプロセスを見ると、 Set xlApp = GetObject("", "Excel.Application") を通る時に新しいEXCEL.EXEが作成され、 Set xlApp = Nothing を通り過ぎる時に、そのEXCEL.EXEが消えます。 だから xlApp.Quit は不要ですか?

  • Excel VBAのPrintOutメソッドにつきまして

    毎々お世話になります。 ExcelのVBAにてシート編集→印刷を実施しておりますが、印刷が行えない事象が発生しております。(100%ではありません。) ----------------------------------------------- ExlObj.ActiveSheet.PrintOut '印刷開始 ExlObj.DisplayAlerts = False ExlObj.Quit 'Excelの終了 Set ExlObj = Nothing ------------------------------ シート内のレコードが多く大量の枚数を印刷する場合、PrintOutメソッドから次の処理(Quit→オブジェクト破棄)を行ってますが、PrintOutから次の処理に移った後にExcelオブジェクトが残ることはないでしょうか? また、ActiveSheetのCloseは必ずQuit前に実施する必要はありますでしょうか?

  • VBからエクセルを起動。そのあとエクセルを終了

    教えてください。 VBからエクセルを起動します。 そのあと、エクセルのシートの上にデータを貼り付けます。そして、エクセルを終了します。 しかし、エクセルが終了しません。 タスクバー上のエクセルをクリックすると終了します。 どうして、このような現象が起こるのかわかりません。 教えてください。 下記に同様のサンプルを書きました 誤記入があるかも知れませんが このような感じのプログラムです。 以上、よろしくお願いします。 public sub test Dim XApp as Excel.Application Dim nfilename as string Dim xlBook As Object Dim xlSheet As Object ' エクセルを起動 Set xlApp = New Excel.Application nfilename ="AAAA.xls" ' 指定されたファイルを開く Call xlApp.Workbooks.Open(nfilename) Set xlBook = xlApp.ActiveWorkbook Set xlSheet = xlBook.Worksheets(1) 'フォームを貼り付ける xlSheet.Range("a1").PasteSpecial      'ファイル名の作成 Filename="BBBB.xls" '保存 ChDir "C:\" xlBook.SaveAs Filename:=Filename,FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Set xlSheet = Nothing xlBook.Close True Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End sub

  • ASP(VBScript)にてExcelアプリケーションが終了しない

    こんばんは VBScriptでExcelを読込みサーバのDBに内容を登録後に終了をしているのですがサーバにExcelアプリケーションが残ったままになっています。 strGetFileName = "C:\a.xls" 'Excelシート設定 Set xlsApp = Server.CreateObject("Excel.Application") xlsApp.Workbooks.Open strGetFileName Set xlsBook = xlsApp.Workbooks(1) Set xlsSheet = xlsBook.Worksheets(2) ← 二枚目のシート --中略-- xlsSheet.Application.Quit 'Excelアプリケーションのメモリ開放 Set xlsSheet = Nothing Set xlsBook = Nothing Set xlsApp = Nothing といったコーディングなのですが処理を重ねるたびにタスクマネージャに Excelアプリケーションが残り、重くなってしまいます。 終了の方法が悪いのではないかとは思いますが、実現方法がわかりません。 オブジェクトをオープンしているのでクローズ命令でも試してみましたがうまくいきませんでした。 どなたかご存知の方いらっしゃいましたら教えてください。 OS Win2000 ASP,BASP 言語 Html,VBScript,JavaScript