『2016では動いていた 21でエラになる』(しーちゃん)
Sub Sagawa003()
'Sub HTTPリクエスト()
Dim httpReq As XMLHTTP60 Dim htmlDoc As Object
Set httpReq = New XMLHTTP60 Set htmlDoc = New HTMLDocument Set Objsh04 = ThisWorkbook.Worksheets(4) 'SetUP_04 Sheet Set ObjSh06 = ThisWorkbook.Worksheets(6) 'Sheet1_06 Sheet
' httpReq.Open "GET", "C:\Users\y04533\Documents\送り状Info.HTML" httpReq.Open "GET", Objsh04.Range("B6").Value
httpReq.send
Do While httpReq.readyState < 4 DoEvents Loop
htmlDoc.write httpReq.responseText
'Debug.Print htmlDoc.Title 'Debug.Print htmlDoc.getElementsByTagName("p")(0).innerText 'Debug.Print htmlDoc.getElementsByTagName("div")(1).innerText
'kokokara----------------- ERR ---------------------------------------------------- ObjSh06.Range("A1").Value = htmlDoc.getElementsByTagName("div")(1).innerText
'''''' Debug.Print ObjSh06.Range("A1").Value
Set htmlDoc = Nothing Set httpReq = Nothing End Sub
Excel2021になったらエラー部分がエラーで動かなくなった。どなたか助けた下さい。 2016では動いていた。
< 使用 Excel:Excel2021、使用 OS:Windows11 >
ObjSh06.Range("A1").Value = htmlDoc.getElementsByTagName("div")(1).innerText
この部分です。
お願いします。
(しーちゃん) 2025/05/04(日) 21:11:44
htmlDoc.write は Internet Explorer(Tridentエンジン)ベースの機能ですが、
Excel 2021 では IE コンポーネントの挙動が一部変化しているようです。
htmlDoc.getElementsByTagName("div")(1) が Nothing になっていて、
.innerText を呼ぼうとすると 実行時エラー(型が設定されていません / オブジェクト変数が設定されていません) が発生しているのでは?
htmlDoc.write の代わりに
htmlDoc.body.innerHTML = httpReq.responseText を利用するとか?
(詠み人知らず) 2025/05/05(月) 06:17:46
1. まず、エラーメッセージを最大限正確に書いて下さい。 重要な情報なんですよ。単にエラーです、じゃなく正確に。
2. Excelのバージョンだけではなく、他の点についても確認して下さい。 ・参照設定しているライブラリーがversionも含めて同一かどうか。 ・対象ファイルに変化がないか。例えば文字コードや、HTMLで使用しているタグに変更がないか。
3.既に指摘がありますように、ステップ実行するなりして Dim elms Set elms = htmlDoc.getElementsByTagName("div") としたときに、ローカルウインドウでelmsの内容を確認してみてはどうでしょう。
(なお、要素の特定には、divとかpタグを使っているんですか?単なる例示で、実際は違うのですか? これらのタグは比較的汎用的なものなので、特定の要素を取得するには余り向いていないと思います。 これらを議論するには、実際のHTMLファイルを示して貰う必要があるかもしれません。無論固有名詞は変換したうえで)
4.対象となるHTMLファイルはHTTPサーバー上ではなく、ローカル(C:\ドライブ)にあるものなんですか? それなら、XMLHTTPで読むのは避けたほうがよいかもしれません。 FSO(File System Object)のOpenTextFileで開いて、ReadAllで内容を取得し、 htmlDoc.body.innerHTMLにその文字列全体をセットしてみてはどうでしょう。 (xyz) 2025/05/05(月) 09:27:07
相変わらずエラー内容は開示しないのですね。
すでに付けられた解決策を行っているようにも思えず
自分の言いたい事だけを投稿するだけでは会話が成立しません。
(詠み人知らず) 2025/05/06(火) 06:14:46
(しーちゃん) 2025/05/06(火) 16:21:29
「バージョンが変わったら動作しなくなった」の一言で原因と解決策を回答できるはずだと 考えるほうがどうかしています。そんな千里眼を持った人は世の中にいません。
バージョンが変わっただけでなぜこんなことになるんだ、早く回答しろ、と言うなら、 そもそもあなたがどのような立場の人か存じませんが、 企業に所属しているなら社内のシステム部門に尋ねていますか? そうしたことをまずすべきです。 PCの入れ替えに伴うものなら、その担当者に尋ねて情報共有すべきです。
Version変更が直接の原因だということが確実と思われるのであれば、 製作者たるマイクロソフト社にあなたが直接尋ねたほうが良いと思いますよ。 製作者以外の一般人に尋ねたって、内部のことはわかりません。情報提供されていないのですから。
会話が成り立たないので私もここまでとします。
(xyz) 2025/05/07(水) 06:45:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.