• ベストアンサー

Excel2010のマクロについて教えてください。

今下記のマクロ Sub SHUURYOU() ActiveWorkbook.Save Application.Quit End Sub をabc.xlsmと言うシートに書き込みボタンに貼り付けました。 又他のBookにあるdef.xlsmと言うシートにも貼り付けました。 それぞれ単独で開き書き込みをしてマクロボタンを押せば保存して終了します。 しかしabc.xlsmとdef.xlsmが同時に開いていると一方のマクロを実行すると両方ともクローズしてしまいます。 このマクロを単独のシート(book)だけに有効にするにはどのようにマクロを書けばよいのでしょうか。 教えてください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Application.Quit を使用されたということは、BOOKを閉じるだけでなく、エクセル自体も終了したいという趣旨と推察します。 ですから、開いているBOOKがひとつだけなら、現状のままでBOOKもエクセルも両方とも終了して問題なかったのが、二つ開いていると、エクセルを終了させるので二つとも閉じられてしまうわけです。 もし、開いているBOOKが一つだけの場合はBOOKもエクセルも両方とも終了させる。 複数のBOOKがひらいていれば、ボタンを押したBOOKだけを終了させる。(エクセルは終了しない) そのようなご希望でしたら Sub SHUURYO()     ActiveWorkbook.Save     If Workbooks.Count = 1 Then         Application.DisplayAlerts = False         Application.Quit     Else         ActiveWorkbook.Close (False)     End If End Sub としてみてください。

skyc42
質問者

お礼

教えていただき有難うございました。 おかげさまでできました。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

書かれたコード通りの動作をしていると思いますが、 単純に次の様な事でよいのでしょうか? 外していたらすみません。 Sub SHUURYO() ActiveWorkbook.Save ActiveWorkbook.Close If Workbooks.Count = 0 Then Application.Quit End Sub

skyc42
質問者

お礼

書き込み有難うございました。

関連するQ&A