The code below works. But if I comment out the line Dim objRequest As MSXML2.XMLHTTP and uncomment the line Dim objRequest As Object it fails with the error message :
The parameter is incorrect
Why, and what (if anything) can I do about it?
Public Function GetSessionId(strApiId, strUserName, strPassword) As String
    Dim strPostData As String
    Dim objRequest As MSXML2.XMLHTTP
    'Dim objRequest As Object '
    strPostData = "api_id=" & strApiId & "&user=" & strUserName & "&password=" & strPassword
    Set objRequest = New MSXML2.XMLHTTP
    With objRequest
        .Open "POST", "https://api.clickatell.com/http/auth", False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send strPostData
        GetSessionId = .responseText
    End With
End Function
Corey, yes, I know I would have to do that in order for my code to work without a reference to the MSXML type library. That's not the issue here. The code fails when using Dim objRequest As Object regardless of whether I use 
Set objRequest = NEW MSXML2.XMLHTTP with the reference, or 
Set objRequest = CreateObject("MSXML2.XMLHTTP") without the reference.