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 пользователя в соответствии с предыдущей темой ниже, но на практике он, похоже, не...
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