VBA を使用してアイテムを SharePoint リストに追加しようとしています。ユーザーが何かをインストールする必要がないので、Microsoft Soap Type Library を使用しています。次のようにコードします。
Sub test()
Dim soap As MSSOAPLib.SoapClient
Dim XMLstr As String
Dim listid As String
Dim listname As String
Set soap = New SoapClient
Call soap.mssoapinit(bstrwsdlfile:="http://wss/mySharepointSite/_vti_bin/lists.asmx?wsdl")
listid = "{e285aa1a-my-list-ID-d446cdbf091e}"
listname = "thisList"
XMLstr = "<Method ID='1' Cmd='New'>" & _
"<Field Name='ID'>New</Field>" & _
"<Field Name='personID'>1337</Field>" & _
"</Method>"
soap.UpdateListItems listid, XMLstr
End Sub
またはを最初のパラメーターとしてsoap.UpdateListItems
使用するかどうかに関係なく、行に「型の不一致」エラーが発生し続けます。どのタイプのパラメータを渡す必要があるかを判断するために WSDL を読み取ろうとしましたが、理解できません。ここで何を渡す必要がありますか?listid
listname
編集:代わりに Microsoft Soap Type Library 3.0 を使用し、MSSOAPLib.SoapClient
->MSSOAPLib30.SoapClient30
とbstrwsdlfile
->を変更して、次par_wsdlfile
のように囲むXMLstr
ことで機能するようになりました。
<Batch OnError='continue' ListVersion='1' ViewName='" & ListView & "'>
...
</Batch>
ユーザーに MSSoap 3.0 のインストールを要求せずにこれを行う方法を模索中です。