This VBA call looks as though it selects the proxy stored in proxyServer:

http.setProxy 1, proxyServer, bypassList

For MSXML ServerXMLHTTP, the first argument chooses the proxy mode. The documented values are 0 for the default configuration, 1 for a direct connection and 2 for an explicitly supplied proxy. Passing an address after 1 does not turn direct mode into manual proxy mode.

A minimal manual-proxy example is:

Dim http As Object
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
http.setProxy 2, "proxy.example:8080", "<local>"
http.Open "GET", "https://example.com/", False
http.send

The example endpoint is a placeholder. For a public-proxy check, replace it with an HTTP address from the HTTP proxy list. The third argument is a bypass list; here <local> uses the documented local-name exception. It is not a second proxy to try if the first fails. Putting another proxy's IP and port there therefore expresses the wrong kind of setting.

Use named constants where your VBA references expose them, or define the relevant constant locally when using late binding, so that the mode is visible during review.

Also keep the object type in view. ServerXMLHTTP, browser-oriented XMLHTTP and WinHttpRequest are different COM interfaces. A working example for one does not establish the configuration source of another. Once the correct object selects manual proxy mode, investigate any remaining connection, authentication or TLS error on that route.

Winndannde jowitiiɗe heen