Передайте переменную в качестве аргумента внутри своего собственного блока

Я настраиваю свое правило внешнего вида в VBA и случайно/инстинктивно пытался передать переменную, ссылаясь на нее как на точку внутри блока With

В моем случае переменная была CurrentItem, и одна из моих подпрограмм ожидает ее в списке параметров. Обычно вы можете сокращенно ссылаться на переменную внутри блока With, используя точку (например, With regEx .Global = True, .Pattern = "^.*$" End With).

Однако попытка передать точку в качестве аргумента не сработала. Мне любопытно, есть ли такое сокращение для ссылки на саму переменную внутри блока With? Вот пример кода:

With CurrentItem
    If .Class = olMail Then
        sFromName = .SenderName
        sID = .Sender.ID
        ''dot arg that doesn't work:
        ''GetSMTP sFromName, sID, .
        GetSMTP sFromName, sID, CurrentItem 
    End If
End With

person cmjtf    schedule 01.02.2015    source источник
comment
Не забудьте отметить мой ответ как принятый.   -  person Tomalak    schedule 03.02.2015


Ответы (1)


Нет, вы не можете ссылаться на текущий элемент в блоке With. Это действительно лучшее, что вы можете получить:

With CurrentItem
    If .Class = olMail Then
        GetSMTP .SenderName, .Sender.ID, CurrentItem 
    End If
End With
person Tomalak    schedule 01.02.2015