А ты скобочки не пробовал поставить? Вот так: x=7
y=2
If ((x<>14 & y<3) | (x<>17 & y>3)) Then
Message("Истинно","")
Else
Message("Ложно","")
End
Ведь Юрик, как программа должна сравнивать, что с чем и в каком порядке, если не разбито на блоки?
Это все равно как известный вопрос "Сколько будет два плюс два умноженное на два".
А это ведь как считать: можно 2 + 2*2, а можно и (2 + 2)*2 - и результаты будут разные. Вот со скобками, которые я поставил в твоем коде, программа всё понимает правильно и выдает мессагу об Истинном утверждении :)