• ベストアンサー

VBからExcelを起動しExcel終了を判定したい

ARCの回答

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

はいはい(笑) #19166の続きってことですので、Excelを使うのに New Excel.Application で、Excelのインスタンスを作成しているわけですよね。 それでしたら、ExcelApp変数の Visibleプロパティを見れば動いてるかどうか分かるみたいです。 以下、プログラム例です。 '*-*-*-この部分はモジュールの先頭部分に記述*-*-*- '寝る為のAPI Call SLEEP(寝るミリ秒数) Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '*-*-*-ここまで*-*-*- Private Sub Command2_Click()   Dim ExcelApp As Excel.Application   'Excelのインスタンスを作成して表示   Set ExcelApp = New Excel.Application   ExcelApp.Visible = True      'Excelが終了されるとVisibleがFalseになる   'ので、それまで待機   Do     Call Sleep(250) 'しばらく寝る     DoEvents   Loop While ExcelApp.Visible = True      'Excel終了時の処理   MsgBox "Excelが終わったよん"      'インスタンスの開放   Set ExcelApp = Nothing End Sub ***************************************** 尚、Shellコマンドを使って起動した場合には、 Dim TaskID as long TaskID=Shell("Excel.EXE …") on error resume next do  Err.Clear  AppActivate TaskID Loop Until Err<>0 Msgbox "Excelが終わったよ" みたいな感じで、アプリの起動を監視できます 返事は一回!

rukaandkaito
質問者

お礼

まっことおおきに!(土佐弁どえす) うまくいきました。 非常に助かりました。 ARCさん、師匠と呼ばせてください(笑)

関連するQ&A

  • VBでのエクセルの起動

    ファイルリストボックスで選択した.xlsファイルを コマンドボタンを使用してExcelを起動し そのファイルを表示(使用)するには どの様にすれば宜しいのでしょうか? コーディングなど教えて頂けると大変助かります 宜しくお願い致します。

  • VB.NetでEXCELが正しく開けません。

    4回目の質問です。内容については変わってきています。 前回の質問は http://okwave.jp/qa/q6385828.html です。 COM参照のリリースもうまくいき、エクセルの編集が終了した時点でEXCELが終了するようになりました。(開発用PCなどで) ところがそれでも、1台のPCは正しく起動できず、メニューバーとステータスバーしか表示されません。 PCの詳細を聞くとAthron64×2だそうです。 開発用PCと違うのは、ここだけです。 何か影響が出ているということでしょうか? よろしくお願いいたします。

  • 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

  • VB6.0からエクセルを起動

    現在VBとVBAの勉強をしているのですが、VB6.0からエクセルを起動する際に、エクセルにはVB6.0から引数を渡したいのですがどうすれば良いでしょうか? どなたか、ご存じの方が居ましたら教えてください。

  • vbスクリプトからexcelのVBAを起動したい。

    vbスクリプトからexcelのVBAを起動したいので、初心者ながら下記のようにコーディングしましたが、excelのVBA;main()が実行できません。  <excelのVBA;main()は単独では正常に起動します。> vbスクリプトからexcelのVBAの起動の方法を教えて下さい。 そのスクリプトをタスク(元旦)に起動したいです。 <vbスクリプト コーディング> dim exlApp On Error Resume Next set exlApp = createobject("Excel.Application") exlApp.visible = true exlApp.Workbooks.Open "C:\年賀状.xls" exlApp.run "Main" If Err Then WScript.Quit End IF If Not(exlApp Is Nothing) Then exlApp.Quit set exlApp = nothing End If

  • Excelの終了について

    こんにちは。昨日もお世話になったguruguru2です。 早速質問なのですが、VBから新規Excelを起動したあとで、フォルダから既存のExcelファイルをダブルクリックで起動します。そのあとで、VBからExcelを終了する時、VBで起動したExcelのみを終了させたいのに、2つとも終了してしまいます。又、フォルダから起動するのではなく、スタートメニューからExcelを起動して、「ファイルを開く」で既存のファイルを開き、VBからExcelを終了するとVBで起動させたExcelのみ終了させることが出来ました。 どうしたら、前者の方法でVBで起動したExcelのみを終了させることが出来るのでしょうか。ソースも書きます。 Private Sub Excel起動() Dim objXls As Object On Error Resume Next Set objXls = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set objXls = CreateObject("Excel.Application") objXls.DefaultFilePath = mstrPath(最初に設定したパスです。) objXls.DisplayAlerts = False objXls.Workbooks.Add objXls.Visible = True End If AppActivate (objXls.Caption) Set objXls = Nothing Err.Clear End Sub Private Sub Excel終了() Dim objXls As Object On Error Resume Next Set objXls = GetObject(, "Excel.Application) If Err.Number = 0 Then     objXls.Quit End If Set objXls = Nothing End Sub わかりづらい説明ですみません。お願いします。

  • ウインドウズの終了後勝手に再起動がかかってしまいます

    前回も同じ質問をしたのですが、解決策が見つからず再び同じ内容の投稿、申し訳ありません。 数日前から、ウインドウズの終了をすると電源が一旦おちるのですが、すぐに再び勝手に再起動してしまいます。 どうしたらいいでしょうか。 (ウインドウズMEです) 初心者のため、用語等があまりわかりません。 よろしくお願いいたします。

  • Excelの終了

    BOOKを一つしか開いていないとき、×で閉じるとEXCELも自動で終了していたのですが、いつからかBOOKだけ終了してEXCELは起動したままになりました。どこかに設定できるオプションがあるのでしょうか。 EXCEL2007を使用しています。

  • VB6からのExcel起動について

    環境は WindowsXpSp3 Excel2002Sp3,Excel2003 VB6Sp6 です。 上記環境下で以下のコードの違いがよくわかりません。 Main1,Main2,Main3 で設定、処理方法(コーディング)、動作、終了(Excelオブジェクトの)の方法等で気をつけなければならないものが変わるのでしょうか。 もう一つ、 Set xlWorkbooks = xlApp.Workbooks についてですが、こちらは Set xlWorkbooks = new xlApp.Workbooks とするとエラーになります。 (Set xlApp = Excel.Application は New があってもなくてもエラーは出ません) この理由もわかりません。 インターネット上で色々検索はしてみたのですが、よくわかりませんでした。 ご存知の方、よろしくお願いいたします。 ------------------------------------------- Global xlApp As Excel.Application Global xlWorkbooks As Workbooks sub Main1() Set xlApp = Excel.Application Set xlWorkbooks = xlApp.Workbooks end sub sub Main2() Set xlApp = new Excel.Application Set xlWorkbooks = xlApp.Workbooks end sub sub Main3() set xlApp = CreateObject("Excel.Application") Set xlWorkbooks = xlApp.Workbooks end sub -------------------------------------------

  • エクセルを開くと二重起動する

    類似の質問があがっていますが、解決しないため質問させて頂きます。 環境:windows7&エクセル2010 xlsxファイルをダブルクリックした際、PC起動後の1回のみ、エクセルが二重起動します。 1つはクリックしたファイルが開き、もう1つは空(シートが表示されていない状態)のエクセルが起動します。 起動したエクセルを2つとも閉じた後、再度エクセルファイルをダブルクリックすると、そのファイルのみ開きます。 補足情報として、エクセルで新規作成→保存したファイルをPC起動直後にダブルクリックした場合、エクセルが二重起動することはありませんでした。 問題のxlsxファイルはエクセル2007から引き続き使用しているものです。 エクセル2007から引き続き使用している他のファイルでも二重起動します。 エクセル2007の時にはこのようなことはありませんでした。 よろしくお願いします。