Пришлось добавить еще один ответ, потому что мне было в основном любопытно.Никогда не использовал WITH много, и я не могу вспомнить, чтобы когда-либо выходил из блока преждевременно, но я только что проверил это под VB2010, и он, кажется, работает очень хорошо (то есть, как я ожидал бы, другими словами ...
Если Var1 = 2, функция возвращает TRUE, а значение MyObject.Property1 равно «Test», но MyObject.Property2 не установлено.
Возможно, что это работало в тесте таким образом, нов реальном приложении значительного размера, с отключенной отладкой и т. д., и т. д., оно может работать по-другому, поэтому есть что рассмотреть ....