Так что я понял это.Вот ответ для всех, кто сталкивается с одной и той же проблемой.
Кажется, что события выхода обрабатываются только внутри одного кадра.Если я выйду из этого TextBox с помощью мыши в другой TextBox внутри того же фрейма, он будет работать.Только если я выйду в другой кадр, это не так.Событие выхода, однако, сохраняется в этом кадре и будет выполнено, как только кадр снова получит фокус.Вот почему я получаю странное поведение сценария, выполняемого при переходе назад во фрейм.
Чтобы обойти это, я теперь просто помещаю те же проверки и в событие выхода из фрейма, и это прекрасно работает.Потому что они будут выполнены при выходе на другой кадр.(Да, это приведет к тому, что код будет выполнен во второй раз, если фрейм снова окажется в фокусе, но в данном конкретном случае это не повредит. Если вы хотите выполнить что-то более значимое для такого события, вам следуетограничить проверку только событием выхода кадра)
Пример:
Private Sub LAN_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsValidIP(AddHost.LANIP) = False Then AddHost.LANIP.BackColor = RGB(255, 0, 0) Else AddHost.LANIP.BackColor = RGB(255, 255, 255)
If IsValidIP(AddHost.LANSubnet) = False Then AddHost.LANSubnet.BackColor = RGB(255, 0, 0) Else AddHost.LANSubnet.BackColor = RGB(255, 255, 255)
If IsValidIP(AddHost.LANGW) = False Then AddHost.LANGW.BackColor = RGB(255, 0, 0) Else AddHost.LANGW.BackColor = RGB(255, 255, 255)
End Sub