保存せずに終了する確認メッセージに対し、「いいえ」を選択している限り抜けないループ処理にすれば実現できます。
Do~Loopは無限ループ⇒Excelフリーズのもとにもなりますので、ループを抜ける条件には漏れがないよう充分ご注意ください。
Do
fname = Application.GetOpenFilename()
If fname = "False" Then
'ファイル名が指定されなかった場合
'確認メッセージを表示
If MsgBox("確認メッセージ", vbYesNo) = vbYes Then
ActiveSheet.Delete
Exit Sub
End If
Else
'ファイル名が指定された場合
Exit Do
End If
Loop
細かなことを言うと、ファイル名をダイアログで指定して保存するダイアログであれば、GetSaveAsFilenameを利用されたほうが適切かと思います。
以下、参考までに私が作成したサンプルを掲載します。
'出力ブックのオープン
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Work\test.xls")
'ブックの内容を変更
wb.Sheets("Sheet1").Cells(1,1) = Cells(1,1) & "x"
'ファイル名をダイアログで指定
Dim fname As String
fname = Application.GetSaveAsFilename
'ファイル名の判定
If UCase(fname) <> "FALSE" Then
'ファイル名が指定されていれば保存
wb.SaveAs (fname)
End If
'ブックを閉じる
wb.Close
ファイル指定ダイアログをキャンセルした場合、編集したブックを保存せずに閉じるため、Close処理を行う際に保存せずに終了する旨の確認メッセージが表示されます。