各ワークブックを制御できる場合は、「チェック済み」と呼ばれるそれぞれに名前付き範囲を作成し、次のようにコードを変更できます...
Sub OpenAllWorkbooksnew()
Set destWB = ActiveWorkbook
Dim DestCell As Range
Dim cwb As Workbook
For Each cwb In Workbooks
'ensure "Checked" flag is reset
cwb.Names("Checked").RefersToRange.Value = "Unchecked"
'bring workbook to focus
cwb.Activate
'wait until "Checked" flag is changed to "OK"
Do Until cwb.Names("Checked").RefersToRange.Value <> "Unchecked"
DoEvents
Loop
'check result and action accordingly
If UCase(cwb.Names("Checked").RefersToRange.Value) = "OK" Then
ActiveWorkbook.Close True
ElseIf UCase(cwb.Names("Checked").RefersToRange.Value) = "ERROR" Then
ActiveWorkbook.Close False
End If
Next cwb
End Sub
ループされる各ワークブックをそのようなレベルで制御できない場合は、同じ方法で機能しますが、リボン/コマンド バーを使用できます (Excel のバージョンによって異なります)。このコードがどのように正確に呼び出されているかなどについての追加情報がなければ、これ以上特定することは困難です.