• ベストアンサー

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

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

  • ベストアンサー
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.3

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=231028

その他の回答 (2)

  • jmh
  • ベストアンサー率23% (71/304)
回答No.2

関係ないかもしれないですが…、 私のエクセルは、非常に稀に、内側のバッテン[×]でワークブックだけを--アプリケーションを残して--閉じると、壊れます。そこで、  xlBook.Close を取り除いてみたらどうでしょうか…?

  • boo9
  • ベストアンサー率50% (2/4)
回答No.1

こんばんは、自分ならいつも下記のようにしてますが 参考になるでしょうか? Private Sub Command1_Click() '事前バインディングによりオブジェクト変数の参照 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") 'CreateObject関数でxlAppにEXCELインスタンスを作成します Set xlBook = xlApp.Workbooks.Add '新しいブックを作成 Set xlSheet = xlBook.Worksheets(1) 'ブックに新しいワークシートを追加 'ブックへの変更をファイル名をつけて保存します。 xlSheet.SaveAs ("ABC.xls") '←括弧の中に目的のファイル名を入力。 xlBook.Close True 'Trueを指定した場合はブックの変更を保存します。 xlApp.Quit 'EXCELを終了します。 '各オブジェクトをメモリーから破棄します Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub

TeamMSY
質問者

補足

回答ありがとうございます。 この方法でも、たまに、エクセルが固まってしまいます。 タスクバーのエクセルをクリックすると再起動します。 この現象の回避策などは、知りませんか?

関連するQ&A