プロが教えるわが家の防犯対策術!

以下があります。

Sub VBA開始()
Bookを開く
処理
Workbooks.Close
End Sub

「Workbooks.Close」を記載すると開いているBOOKすべてが閉じてしまうのですが、VBA内で開いたBOOKのみを閉じるにはどのように記載すればよいでしょうか?

開く時に記載したプログラムです。
Dim OpenFileName As String
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
Workbooks.Open OpenFileName

A 回答 (2件)

こんにちは!



ざっくりとした回答になりますが、
No.1さんがおっしゃっているように一つ変数を増やしてみてはどうでしょうか?

Dim wB As Workbook
'Bookを開く
Set wB = ActiveWorkbook
'処理
wB.Save '//←保存する場合//
wB.Close

といった感じで・・・

※ 保存しないで閉じる場合は
「保存確認」のメッセージを表示させない方法などもあります。m(_ _)m
    • good
    • 0

こんにちは



>開いたBOOKのみを閉じるにはどのように記載すればよいでしょうか?
Workbooks.Openの戻り値は、対象のブックオブジェクトになりますので、
 Set wb1 = Workbooks.Open OpenFileName
などとして変数に記憶しておいて、閉じる時には
 wb1.Close
とすれば、指定したブックだけ(wb1だけ)閉じることになります。

※ 開く対象のブックが複数ある場合でも、要領は同じです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Set wb1 = Workbooks.Open OpenFileNameは
どこに記載すればよろしいのでしょうか?

お礼日時:2020/08/03 17:03

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