Share via

Using mssoap30.dll with office 2010

Anonymous
2011-11-18T12:41:24+00:00

Hi,

I created an excel addin using office 2007. This XLA uses the MSSOAP30.dll to connect to/consume a web service.

This dll is installed with MS Office.

I copied this XLA to another computer which only runs office 2010.

When I start excel 2010, I get an error message "compile error in hidden module".

When I look at the VBA references, I can see that the reference is missing "Missing: microsoft office soap type lib".

If I remove the XLA & start a brand new VBA project, the DLL is still not listed as an available reference.

I know I can register the dll myself but the excel addin is meant for external clients. So I would need to register this dll when it is installed (to me, this should be done by office).

So I would like to know:

  • Is the dll even registered? (I can find it in the registry editor but does that mean its registered?)
  • If not why not? (If office 2010 installs this DLL, then why not simply register it?)

Thanks for the help,

Sean

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
Answer accepted by question author
  1. Anonymous
    2011-11-21T17:28:19+00:00

    The SOAP dll is not a standard part of Office, I think it comes as a separate download from Microsoft:

    http://www.microsoft.com/download/en/details.aspx?id=13456

    The page lists a SOAP toolkit redistributable, which I suspect is meant for people using your add-in:

    http://www.microsoft.com/downloads/details.aspx?FamilyID=ba611554-5943-444c-b53c-c0a450b7013c&DisplayLang=en

    0 comments No comments

3 additional answers

Sort by: Most helpful
  1. Anonymous
    2017-09-25T00:38:08+00:00

    Hi Jan,

    Non of the download links not exists any more.

    Any other suggestions?

    Thanks

    -Ruwan

    1 person found this answer helpful.
    0 comments No comments
  2. Anonymous
    2011-11-21T08:21:44+00:00

    Thanks for the reply. I was'nt aware of that and it is something I will look into - maybe for version 2 of the XLA (version 1 is already up & running). 

    But I would still like to know the answer to my 2 questions. As that speaks directly to the current situation.

    Thanks

    0 comments No comments
  3. Anonymous
    2011-11-18T16:20:48+00:00

    You don't need the SOAP dll to connect to web services. The code below illustrates a connection to a webservice, which uses the MS XML 3.0 library:

    Sub DoIt()

        Dim sURL As String

        Dim sEnv As String

        Dim xmlHtp As New MSXML2.XMLHTTP40

        Dim xmlDoc As New DOMDocument

        Dim oValueNodes As MSXML2.IXMLDOMNodeList

        sURL = "http://webservices.gama-system.com/exchangerates.asmx?op=CurrentConvertToEUR"

        sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"

        sEnv = sEnv & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"

        sEnv = sEnv & "  <soap:Body>"

        sEnv = sEnv & "    <CurrentConvertToEUR xmlns=""http://www.gama-system.com/webservices"">"

        sEnv = sEnv & "      <dcmValue>100</dcmValue>"

        sEnv = sEnv & "      <strBank>BS</strBank>"

        sEnv = sEnv & "      <strCurrency>USD</strCurrency>"

        sEnv = sEnv & "      <intRank>1</intRank>"

        sEnv = sEnv & "    </CurrentConvertToEUR>"

        sEnv = sEnv & "  </soap:Body>"

        sEnv = sEnv & "</soap:Envelope>"

        With xmlHtp

            .Open "post", sURL, False

            .setRequestHeader "Host", "webservices.gama-system.com"

            .setRequestHeader "Content-Type", "text/xml; charset=utf-8"

            .setRequestHeader "soapAction", "http://www.gama-system.com/webservices/CurrentConvertToEUR"

            .send sEnv

            xmlDoc.loadXML .responseText

            Set oValueNodes = xmlDoc.getElementsByTagName("CurrentConvertToEURResponse")

            MsgBox oValueNodes.Item(0).nodeTypedValue

        End With

         'xmlDoc.Save ThisWorkbook.Path & "\WebQueryResult.xml"

    End Sub

    0 comments No comments