Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use VBA to call a cellphone

Tags:

vba

About a year ago, a manager in another department brainstormed that I could code up some VBA to auto call me in the event one of my automated reports crashes. I laughed at the time, but my skills have improved considerably and I wonder if it's technically possible

(not that I'd actually do it, mind you. I like my early Saturday mornings workplace-free).

This would need:
1. Access to the internet (not a problem)
2. A means of connecting to some service to place the call, preferably free, lest I cost the company $10 a month (Skype?)
3. An automated voice (already exists on the standard Access install package)

What do you think?

Edited 08/24/2009 - Spacing added. No text was changed.

like image 200
PowerUser Avatar asked Dec 14 '22 02:12

PowerUser


2 Answers

Do the simplest thing that could possibly work. In this case, making phonecalls is hard, but sending emails is easy.

Most cellphone providers expose a phone's mailbox (something like [email protected]) to the internet, allowing you to send an email to that address and have it show up on your phone as a text message.

like image 173
Juliet Avatar answered Dec 30 '22 00:12

Juliet


You can use Skype in combination with VBA. It's actually not that complicated and you will find a couple of samples written in VBScript on the Skype website. I don't know whether it is possible to actually play an audio file, but you can send SMS easily:

 '// Create a Skype4COM object:
Set oSkype = WScript.CreateObject("Skype4COM.Skype", "Skype_")

'// Start the Skype client:
If Not oSkype.Client.IsRunning Then oSkype.Client.Start() End If

'// Send SMS:
Set oSMS = oSkype.SendSms("+1234567890", "Hello!")

WScript.Sleep(60000)

'// Message event handler:
Public Sub Skype_SmsMessageStatusChanged(ByRef aSms, ByVal aStatus)
  WScript.Echo  ">Sms " & aSms.Id & " status " & aStatus & " " & oSkype.Convert.SmsMessageStatusToText(aStatus)
End Sub

'// Target event handler:
Public Sub Skype_SmsTargetStatusChanged(ByRef aTarget, ByVal aStatus)
  WScript.Echo  ">Sms " & aTarget.Message.Id & " target " & aTarget.Number & " status " & aStatus & " " & oSkype.Convert.SmsTargetStatusToText(aStatus)
End Sub
like image 32
Dirk Vollmar Avatar answered Dec 30 '22 01:12

Dirk Vollmar