Možda bi ga i kupio da si se javio na početku. Sada sam već tako blizu rešenja...Inače, već sam nekoliko puta objašnjavao zašto mora biti baš Excel, i nikakva konverzija, kopiranje ili nešto slično ne dolazi u obzir, jer to nije klasičan imenik, već spisak mušterija, koji se svaki čas dopunjava i menja. Ako ću da pravim poseban spisak telefonskih brojeva, onda mogu da zovem i direktno preko telefonskog aparata.
Pokušao sam da ubacim naredbe, po preporuci Damiru-2
Code:
Option Explicit
Sub DialOut() '
Dim strDial As String
Dim intReturn As Long
strDial = ActiveCell.Value
intReturn = Shell("C:\Windows\Dialer.exe", 1)
'Pauza za ručnu komandu Alt+Tab kod XP-a
Application.Wait Now + TimeValue("00:00:02")
Application.SendKeys (strDial & "%d")
Application.Wait Now + TimeValue("00:00:10")
'Naredba za zatvaranje aktivnog prozora
Application.SendKeys "%{F4}"
End Sub
End Sub
I radi na Win98, isključi se posle 10 sekundi, ali Dialer neće da se skloni. Ponavljanjem poslednjeg reda u codu, skloni se i Dialer, ali hoće da se zatvori i Excel, dok sa ručnom komandom Alt+F4 se zatvara samo Dialer.
Naredba za dovođenje prozora u fokus
SendKeys "{F6}{TAB X}" ne radi. Postoji li komanda za dovođenje konkretnog programa (po imenu) u fokus, a takođe i njegovog zatvaranja, jer sam u međuvremenu otkrio da cod "%{TAB X} a ne {F6}{TAB X} predstavlja komandu Alt+Tab, ali ne radi svaki put!
A za upotrebu u WinXP bi trebalo da bude pre upisivanja telefonskog broja naredba za prelazak na aktivni prozor (koja mi ne radi). Kako bi to uticalo ako je taj prozor već aktivan (u slučaju Win98, gde ta naredba nije potrebna). Ili mora sasvim drugi macro?
Evo ovako: kada u WinXP-u uradim sledeće:
-pokrenem macro, ali ubacim pauzu pre upisivanja broja,
-zatim pritisnem Alt+Tab,
on zove telefonski broj, koji je upisan u ćeliju.
zatim (posle 10 sekundi):
-Alt+F4,
-Alt+F4,
isključi se Dialer, i to je to. Kako to prevesti u kod?
[Ovu poruku je menjao Proko dana 20.12.2005. u 00:05 GMT+1]