— Никак нет! Не атавизм, и убрать нельзя.
Зачем же оно тогда нужно, если можно всегда обойтись без него?
А вот не всегда. Это фича
- Код: Выделить всё
Public Sub Name()
MsgBox "Я процедура Name"
End Sub
Private Sub Main()
On Error Resume Next
Call Name
Name "c:\pagefile.sys" As "c:\swapfile.sys"
End Sub
А теперь попробуйте убрать Call и посмотрите, что получится. Или попробуйте придумать, как здесь обойтись без Call.
В VB есть два семейства ключевых слов: ключевые слова из одного никогда не могут быть использованы в качестве имён процедур/функций/переменных и т.п. Кл. слова из вторых — могут.
В частности, вы можете создать свойство с именем «Property»:
- Код: Выделить всё
Public Property Get Property()
End Property
Public Property Let Property(ByVal vNewValue)
End Property
Зачем это может быть нужно? В таком виде, вряд ли это полезно, но если вспомнить про параметрические свойства:
- Код: Выделить всё
Public Property Get Property(Property_Id_Or_Name)
' Какой-нибудь мудрёный код
End Property
Public Property Let Property(Property_Id_Or_Name, ByVal vNewValue)
' Какой-нибудь мудрёный код
End Property
даёт вам возможность делать так:
- Код: Выделить всё
SomeObject.Property("Color") = xyz
SomeObject.Property("Width") = abc
SomeObject.Property("Style") = 123
Ivan.Property("Имя второй жены") = "Мария"
Или даже так:
- Код: Выделить всё
SomeObject!Color = xyz
SomeObject!Width = abc
SomeObject!Style = 123
Ivan![Имя второй жены] = "Мария"
Ну в каком ещё языке возможны такие трюки?