1
0
-1

事情により、WindowsPCから大量のページを作成することになりました。
検討の結果、CSVファイルを作り、1行1ページの内容にしてExcel VBAを使ってRESTAPIでページを作成することにしました。
VBAは初心者です。

とりあえずなコードは作れたのですがHTTPコード415が返ってきて作成できません。

ExcelVBAを使ってページ作成をされた方はおられますでしょうか。
可能であれば基本的なコードを教えて頂けないでしょうか。

また、以下にコードを記載しますので間違いがあればご指摘頂けると幸いです。

何卒よろしくお願い致します。

「そもそも、VBAよりpower shellの方が楽」などのコメントも頂けると助かります。

Function test()


'---------------------------------
' リクエストパラメタ生成
'---------------------------------
Dim JsonObject As Object
Set JsonObject = New Dictionary
Dim Id As Object
Set Id = New Dictionary
Dim Key As Object
Set Key = New Dictionary
Dim Storage As Object
Set Storage = New Dictionary
Dim Value As Object
Set Value = New Dictionary
Dim Ancestors As Collection
Set Ancestors = New Collection

Value.Add "value", "<p>This is <br/> a new Excel Make Page01</p>"
Value.Add "representation", "storage"

Storage.Add "storage", Value

Key.Add "key", "AP"

Id.Add "id", "1038762"

JsonObject.Add "type", "page"
JsonObject.Add "title", "Excel Make Page01"
JsonObject.Add "ancestors", New Collection
JsonObject("ancestors").Add Id
JsonObject.Add "space", Key
JsonObject.Add "body", Storage


' イミディエイトウィンドウで確認(デバック用)
Debug.Print JsonConverter.ConvertToJson(JsonObject, Whitespace:=2)


'---------------------------------
' リクエスト
'---------------------------------
Dim objHTTP As Object
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0")
objHTTP.Open "POST", "https://test.rickcloud.jp/wiki/rest/api/content", False, "username", "password"
objHTTP.setRequestHeader "Content-Type", "text/plain"
objHTTP.setProxy 2, "192.168.110.1:8080"
objHTTP.setProxyCredentials "username", "password"
objHTTP.send JsonConverter.ConvertToJson(JsonObject)

MsgBox objHTTP.Status

' レスポンスコード(正常)
If objHTTP.Status = 200 Then
MsgBox "正常に終了しました"
End If


    Commentコメントを追加...

    1 回答

    1.  
      2
      1
      0

      415 は Media Type に起因するエラーのようです。

      VBA の中で "Content-Type", "text/plain" と指定しているので、ここを json 形式に変更するのを試してみてはいかがでしょうか。

      1. 森正樹

        回答ありがとうございます!
        試してみます!

      Commentコメントを追加...