• ベストアンサー

エクセル・エラーを出さずに複数ブックをクローズしたい

複数のファイルを閉じたいのですが、 Sub 必要ファイルを閉じる() Workbooks("あ.xls").Close SaveChanges:=False Workbooks("い.xls").Close SaveChanges:=False Workbooks("う.xls").Close SaveChanges:=False Workbooks("え.xls").Close SaveChanges:=False End Sub 開いていないファイルがあるとエラーで止まってしまいます。 この4つのファイルに該当するものがあれば、閉じる というマクロを組みたいです。 アドバイス、宜しくお願いします。

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

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

> 開いていないファイルがあるとエラーで止まってしまいます。 単にそれだけを回避するのであれば、一例として Sub 必要ファイルを閉じる() On Error Resume Next Workbooks("あ.xls").Close SaveChanges:=False Workbooks("い.xls").Close SaveChanges:=False Workbooks("う.xls").Close SaveChanges:=False Workbooks("え.xls").Close SaveChanges:=False On Error GoTo 0 End Sub

mimomosan
質問者

お礼

ご回答、ありがとうございます。 バシバシ閉じる事ができました。 感謝です。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問者が言っていることは、下記で解決するのか、下記を試してみてください。 ただしネットワーク上の他のパソコンで開いているブックとかは下記では問題に出来ないので(通常閉じる対象ではないでしょうが)。 また他に新しくエクセルを起動し、そこで開いているブックも、下記では捉えられません。 Sub test01() Dim WBK As Workbook ' 各ブック x = InputBox("ブック名(.xls付き)=") If Workbooks.Count <= 1 Then MsgBox "2つ以上のブックを開いていません。", vbExclamation Exit Sub End If ' ブックの一覧を取得 n = 1 For Each WBK In Workbooks MsgBox WBK.Name If WBK.Name = x Then MsgBox "開いてます" Exit Sub End If Next MsgBox "開いていません" End Sub

mimomosan
質問者

お礼

ご回答、ありがとうございます。 なるほど。こうやって一覧を取得するのですね。。。 勉強になります。 有難うございました!

関連するQ&A

専門家に質問してみよう