エクセルVBAで実行時エラー438
自宅のエクセル2019や、会社のMicrosoft365では問題なく動く下記のコードですが、エクセル2016のパソコンでは「実行時エラー '438':オブジェクトは、このプロパティまたはメソッドをサポートしていません。」となります。これはエクセルのバージョンの問題でしょうか?対応する方法はありませんか?
Sub sample()
Dim url As String
Dim zip As String
Dim httpReq As Object
Dim httpDoc As Object
Dim data As Object
Dim line As Object
Dim State As String
Dim city As String
Dim addressLine As String
'URL
url = "https://www.post.japanpost.jp/cgi-zip/zipcode.php?zip="
'郵便番号
zip = "1000001"
'HTTPリクエスト実行
Set httpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
httpReq.Open "GET", url & zip, False
httpReq.Send
'「HTMLDocumentオブジェクト」にHTTPレスポンスを設定
Set httpDoc = CreateObject("htmlfile")
httpDoc.body.innerHTML = httpReq.responseText
'都道府県と市区を抜き出す
Set data = httpDoc.getElementsByClassName("data") 'ここでエラー
State = data(1).innerText
city = data(2).innerText
'町村を抜き出す
Set line = httpDoc.getElementsByClassName("line")
addressLine = line(0).innerText
'結果
MsgBox (State & city & addressLine)
'後片づけ
Set httpReq = Nothing
Set httpDoc = Nothing
End Sub
このコードは以下のサイトからコピペしたものです。
https://excel-vba.work/2023/03/27/%e3%80%90vba%e3%80%91%e9%83%b5%e4%be%bf%e7%95%aa%e5%8f%b7%e3%81%8b%e3%82%89%e4%bd%8f%e6%89%80%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/
お礼
joy_28さん、ありがとうございます。 英語は苦手で避けていましたが、ご紹介いただいたサイトは英語がわからなくてもなんとかできそうですね! まずはこちらでチャレンジしてみます。