電子書籍の厳選無料作品が豊富!

こんにちは。
Excel2007になってから、ブックを閉じる場合にエラーが出力されてしまいます。
以下を全て試してみたのですが、「エクセルは動作を停止しました」とメッセージを出力後、再度エクセルを立ち上げてしまいます。

解決方法をご存じの方がいらっしゃいましたら、教えていただきたく、
お願いいたします。
ThisWorkbook.Close
ActiveWorkbook.Close
Workbooks("mcr_fi.xls").Close

よろしくお願いいたします。

A 回答 (2件)

こんばんは。



昔、某掲示板で、トラブルになったので良く覚えていますが、マクロが入っているブックを締めても、(Applicationへの命令以外でも)マクロが生きていることがあります。上位バージョンに行き次第、こういう問題がシビアになるようですね。

質問の内容とは、若干違いますが、こんなことを考えてみました。

ただ、こういうループの方法というのは、上手くいくとは限りません。

Sub Testquit1()
On Error Resume Next
For i = 1 To Workbooks.Count
 If Workbooks(1).Name <> ThisWorkbook.Name Then
   Workbooks(i).Close False '終了時に保存はしない
 End If
Next
  ThisWorkbook.Close False
'  Application.Quit
End Sub
    • good
    • 2
この回答へのお礼

回答ありがとうございます。

お礼が遅くなり、本当にすみません。
今日、本屋で何冊か2007のVBAの本を読んだのですが、
2007のマクロファイルの保存は「xlsm」にしなければいけないとのこと。
私は、使用者の都合上、拡張子「xls」で作成しているのですが、
そのことが原因かと思い、テストをいくつかしてみました。
「xls」のファイルだけがエラーとなれば、そういうことか。。。
と納得するつもりでしたが、うまくいってしまい、また謎は深まるばかり。。。
とりあえずは、終了時に保存だけをして、使用者にブックを閉じるメッセージをつけて終了したいと思います。

遅くなり本当にすみませんでした。
ありがとうございます。

お礼日時:2009/02/07 15:46

>ThisWorkbook.Close



マクロを実行しているブック(命令文が書いてあります。)を真っ先に閉じてしまえば以後の命令は実行されません。
通常なら2007以前でも同様の事が起きているはずです。

貴方が部下に指示を与えながら仕事をしていると仮定すると、仕事が終わったの見計らって部下を帰す前に貴方がさっさと帰ってしまったのと同じです。
    • good
    • 0
この回答へのお礼

お礼が遅くなりすみません。
回答ありがとうございました。
質問の仕方が悪くて申し訳ありません。
2002,2003のverではうまくいっていたのですが、
どうも2007ではcloseされなく、困っていました。
とりあえずは、VBAでcloseするのではなく、
使用者にブックを閉じてもらうメッセージを出力するようにしました。

ありがとうございます。

お礼日時:2009/02/07 15:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!