昨日まで動いていたマクロが突然動かなくなる・・・本当に目途のつけようがないので厄介ですよね。
昨日、マクロが動かなくなったと依頼があったため見てみました。確かに私の環境でも動きませんでした。
しかし動かなかったのは、リクエストを投げるsendメソッドの部分でした。
サーバの設定誰か自分に相談せず変えたかな?とかwindowsのアップデートでおかしくなったかな?とか色々考えました。
エラーは「セキュリティで保護されたチャネル サポートでエラーが発生しました」
症状は「マクロは動かない、でもURLを直接叩くとjsonが表示される」
現象は「vpsによって元のソースでも動くものはある」
これに当てはまる情報はありませんでした。
とりあえずググって出てきた情報を参考に、変更しました。
元のソース
Const url = "http://hoge.abc/fuga.json"
Set xml = CreateObject("MSXML2.ServerXMLHTTP")
xml.Open "GET", url, False
xml.setRequestHeader "Content-Type", "application/json"
xml.send
変更後
Const url = "https://hoge.abc/fuga.json"
Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
xml.Open "GET", url, False
xml.setRequestHeader "Content-Type", "application/json"
xml.send
たったこれだけの変更で動くようになりました。
ググって出てきたページにはむしろ「ServerXMLHTTPに変更しなさい」というものが多かったので、逆走する形になりました。
最初はXMLHTTP.6.0に変更しただけで、エラーが「アクセスが拒否されました」みたいなものだったと思います。
で、言葉通りだよなとは思いつつもググってみたところ、httpsじゃないのという書き込みがあったためハッとしました。
言葉通りだよなと思ってググらなかったら、ずっと悩んでいたところでした・・・
とりあえず、動いたことよりも「なんで昨日まで動いていたものが急に動かなくなったのか」の方が気になります。