キャンセルは3回まで

さて表題、わかりずらいかな?
ファイルをダイアログで指定するのだけど、キャンセルを制限するという事そうしないと処理が延々と繰り返されるので…


Public Sub TEST()
Call TEST2
MsgBox "次の処理へ"
End Sub
Private Sub TEST2(Optional ByRef CancelCount As Long = 0)
 If CancelCount >= 3 Then
  MsgBox "キャンセル制限により停止"
  End
 End If

 If MsgBox("いいえ は3回まで", vbInformation + vbYesNo, CancelCount & "回目") = vbNo Then
  Call TEST2(CancelCount + 1)
 Else
  'ファイルダイアログの処理を書く
  Exit Sub
 End If
End Sub

私はこれで、無限キャンセルを辞めて頂いている(笑)
インポート処理とかにお役立ちする。

ちなみに自分で自分を呼ぶプロシージャは "ByRef " は殆どありえないから
注意が必要です

ソート系の場合は絶対 "ByVal" なのでよろしく


この記事が気に入ったらサポートをしてみませんか?