При работе с базами данных в 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
Комментарии
Отправить комментарий