ホワイトレンド

きあいのタスキ

【GPT-5】VBAでHTTPリクエストを作成し、WebDAV対応サーバー上にフォルダを作成する方法

もちろんです!VBAでHTTPリクエストを使ってWebDAV対応サーバー上にフォルダを作成するには、MSXML2.XMLHTTPWinHTTP.WinHTTPRequestを使い、HTTPのMKCOLメソッドを送信します。MKCOLWebDAVでフォルダ(コレクション)を作成するためのメソッドです。

以下に具体的なサンプルコードを示します。


サンプルコード(VBA

 

Sub CreateWebDAVFolder()
    Dim http As Object
    Dim webDAVUrl As String
    Dim username As String
    Dim password As String
    Dim responseCode As Long
    
    ' 作成したいフォルダのURL
    webDAVUrl = "https://example.com/webdav/NewFolder"
    
    ' 認証情報
    username = "your_username"
    password = "your_password"
    
    ' HTTPリクエストオブジェクトの作成
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    ' MKCOLメソッドでフォルダ作成
    http.Open "MKCOL", webDAVUrl, False, username, password
    http.Send
    
    ' HTTPステータスコードの確認
    responseCode = http.Status
    If responseCode = 201 Then
        MsgBox "フォルダ作成成功!"
    ElseIf responseCode = 405 Then
        MsgBox "フォルダは既に存在しています。"
    Else
        MsgBox "フォルダ作成に失敗しました。ステータスコード: " & responseCode
    End If
End Sub

 


ポイント

  1. MKCOLメソッド

  2. 認証

    • サーバーがBasic認証の場合、http.Openでユーザー名とパスワードを指定できます。

    • NTLM認証が必要な場合は、WinHTTP.WinHTTPRequestの方が簡単に扱える場合があります。

  3. 存在チェック

    • 既にフォルダが存在すると 405 Method Not Allowed が返ることがあります。


💡 補足

  • MSXML2.XMLHTTPは簡易的に使えますが、NTLM認証やプロキシ環境では WinHTTP.WinHTTPRequest の方が安定します。

  • サーバーURLは最後に作成するフォルダ名を含める必要があります。例: https://example.com/webdav/NewFolder


もし希望であれば、NTLM認証対応版のVBAコードも作れます。
作ってほしいですか?