Звонок из Excel через SIP софтфон Sippoint

При работе с базами данных в Excel, где в ячейках присутствуют номера телефонов, порой требуется выполнять звонки по множеству номеров, указанных в таблице.

Обычно этот процесс не автоматизирован - пользователь, глядя в таблицу Excel, набирает на своём мобильном телефоне номер из очередной ячейки.

Чем это чревато - вы и сами понимаете: мало того, что пользователь теряет время, набирая номер на телефоне, так и при наборе номера возможно ошибиться, в результате чего вы потратите лишнее время и деньги.

Предлагаю вашему вниманию макрос, который позволит нажатием одной кнопки набрать номер телефона из ячейки в популярном софтфоне Sippoint (от компании SIPNET)

Sub ПозвонитьНаНомерИзВыделеннойЯчейкиExcel()
    ' макрос наберёт номер из активной ячейки в программе Sippoint
    CallWithSIPPOINT Trim(ActiveCell)
End Sub

Sub CallWithSIPPOINT(ByVal number$)
    ' пытается набрать номер number$ в программе SIPPOINT
    On Error Resume Next: Err.Clear: res = 0
 
    Hwnd& = FindWindow("TForm1", "Sippoint ")    ' получаем Hwnd& окна запущенного приложения
    If Hwnd& = 0 Then    ' программа не найдена среди запущенных приложений
        SIPPOINTpath$ = Environ("ProgramFiles") & "\Sippoint\Sippoint.exe"
        If Dir(SIPPOINTpath$, vbNormal) = "" Then Exit Sub    ' выход (программа не найдена)
        ' pid& = Shell(SIPPOINTpath$): DoEvents    ' запускаем программу
        MsgBox "Программа «Sippoint» не запущена!", vbExclamation, "Набор номера невозможен": Exit Sub
    End If
    If Hwnd& = 0 Or Err > 0 Then Exit Sub    ' так и не удалось запустить программу - выходим из макроса

    TsPanel1& = FindWindowEx(Hwnd&, 0, "TsPanel", vbNullString)
    TsPanel2& = FindWindowEx(Hwnd&, TsPanel1&, "TsPanel", vbNullString)
    TsPageControl& = FindWindowEx(TsPanel2&, 0, "TsPageControl", vbNullString)
    TsTabSheet& = FindWindowEx(TsPageControl&, 0, "TsTabSheet", vbNullString)
    While FindWindowEx(TsTabSheet&, 0, "TVirtualStringTree", vbNullString) <> 0
        TsTabSheet& = FindWindowEx(TsPageControl&, TsTabSheet&, "TsTabSheet", vbNullString)
    Wend
    TsEdit& = FindWindowEx(TsTabSheet&, 0, "TsEdit", vbNullString)
    SendButton& = FindWindowEx(TsTabSheet&, 0, "TsBitBtn", vbNullString)
 
    ' вводим заданный текст в поле для номера в программе sippoint
    res = res - SendMessage(TsEdit&, WM_SETTEXT, 3, number$)
 
    ' нажимаем кнопку ВЫЗОВ
    res = res - SendMessage(SendButton&, WM_LBUTTONDOWN, 0, vbNullString)
    res = res - SendMessage(SendButton&, WM_LBUTTONUP, 0, vbNullString)
 
    If TsEdit& * SendButton& Then Debug.Print "Набран номер " & number$
End Sub

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
       __     __      _     _                    
____ \ \ / / __| | (_) _ __ __ __
|_ / \ \ / / / _` | | | | '_ \ \ \ /\ / /
/ / \ V / | (_| | | | | | | | \ V V /
/___| \_/ \__,_| _/ | |_| |_| \_/\_/
|__/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.