• ベストアンサー

エクセル VBA マクロを動かしたときに元々開いているファイルを閉じる・・・

いつも皆様には大変お世話になっております。 早速質問ですが、 「もしこのマクロが動く時点で他のExcelファイルが開いていたら、警告の上 自ファイルを閉じる、開いていなければ~実行」 という処理をかませたいと思っております。 ここの判定の方法がわかりません。(既にExcelが起動されていたら、でもいいのでしょうか。。。?) 下記のようなマクロを組んでいるので 他のファイルが開いていると厳しい状況です。 bname = "C:\" & Format(Range("q1").Value, "yyyymmdd") & "サンプル" & ".xls" ActiveWorkbook.SaveAs bname Workbooks.Open "C:\サンプル.xls" Workbooks(1).Close 本当は"yyyymmdd"&"サンプル"&".xls"ファイルだけ閉じられればいいのですが、自分の知識では上記のような形でしか動かせません;; もしご存知の方、ご教示ください。よろしくお願いします

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

かなりVBAを勉強されているようですので、ヒントだけ。 要するにWorkbookを順にアクティブにし、アクティブなWorkbookの 名前が該当すれば閉じてしまえばいいんです。 IF ActiveWorkbook.name ="なんたら" then ActiveWorkBook.close こんな感じですかね。ステートメントは合ってるかどうか分かりませんが、 発想はコレでいけるはず。

nanny
質問者

お礼

早速のお返事ありがとうございます! 言われると なるほど!!って感じなのですがなかなか頭に思い浮かばないものですね;; 早速試してみます ありがとうございました

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

開いているブックの数は下記で判別可能です。 Workbooks.Count 自分だけなら1です。

nanny
質問者

お礼

なるほど~後はcount とifで何とかなりそうです。 ありがとうございました。

関連するQ&A