グローバル変数のやりとりなくしたら右上×ボタン閉じでエラーが出る原因が突き止められなくて苦労しました。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True Me.Hide End If End Sub 右上×ボタンで閉じるとShowの次の行に制御は戻るのに、モジュールレベルの変数は 値をクリアされてしまうのですね。 とりあえずグローバルのやりとりは卒業できました。ありがとうございました。