Excel VBA - отправка группового сообщения через API Lync / Communicator

Я пытаюсь отправить групповое сообщение нескольким пользователям через Lync/Microsoft Communicator из Excel, используя VBA.

Приведенный ниже код работает для одного адреса электронной почты / пользователя, но если указан диапазон ячеек из двух адресов электронной почты, он выдает ошибку "Метод" CreateGroup "объекта IMessengerAdvanced" ошибка ". Любой совет будет принята с благодарностью.

Sub sendIM()
 Dim msgr As CommunicatorAPI.IMessengerConversationWndAdvanced
 Dim msgTo As Variant
 msgTo = Sheets("Sheet1").Range("A1:A2").Value
 msgr = Messenger.InstantMessage(msgTo)
 msgr.SendText ("Test")
End Sub

Предполагается, что метод InstantMessage(Object) работает для>1 пользователя в соответствии с предыдущей темой ниже, но на практике он, похоже, не...

Lync уведомление офлайн людей, использующих VBA

1 ответ

Решение

Интерфейс ожидает массив адресов электронной почты при отправке в группу.

вместо:

Sub sendIM()
 Dim msgr As CommunicatorAPI.IMessengerConversationWndAdvanced
 Dim msgTo As Variant
 msgTo = Sheets("Sheet1").Range("A1:A2").Value
 msgr = Messenger.InstantMessage(msgTo)
 msgr.SendText ("Test")
End Sub

проверить это:

Sub sendIM()
 Dim msgr As CommunicatorAPI.IMessengerConversationWndAdvanced

 Dim msgTo() As Variant
 ReDim msgTo(0 To 0)                       'Allocate first element
 For Each cell In Sheets("Sheet1").Range("A1:A2")'put your range here
     msgTo(UBound(msgTo)) = cell.Value2          'Assign the array element
     ReDim Preserve msgTo(UBound(msgTo) + 1) 'Allocate next element
 Next
 ReDim Preserve msgTo(LBound(msgTo) To UBound(msgTo) - 1)  'Deallocate the last, unused element

 'sometimes you need to use Set, sometimes you dont, depending on environment you have, or maybe OPTION EXPLICIT
 Set msgr = Messenger.InstantMessage(msgTo)
 'msgr = Messenger.InstantMessage(msgTo)
 msgr.SendText ("Test")
End Sub
Другие вопросы по тегам