[[20250504180815]] 『2016では動いていた 21でエラになる』(しーちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『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 >


>エラー部分がエラーで動かなくなった
エラーが出る箇所とエラー名ぐらいは書きましようよ。
(?) 2025/05/04(日) 20:35:00

[[20250504181746]]
[[20250504183327]]
[[20250504180815]]
Excel2021 に関する質問ですよね。
タイトルだけ変えて投稿するなんてどうでしょうか。
(gt@d;1) 2025/05/04(日) 20:48:05

kokokara----------------- ERR ----------------------------------------------------
 ObjSh06.Range("A1").Value = htmlDoc.getElementsByTagName("div")(1).innerText

この部分です。
お願いします。
(しーちゃん) 2025/05/04(日) 21:11:44


[[20250504180815]]
とは関係あるんですか。
(gt@d;1) 2025/05/04(日) 21:42:32

エクセルのバージョンではなくてPCが変わったのが原因じゃないですか?
(adj) 2025/05/04(日) 22:11:09

エラー内容が不明ですが、

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

Cドライブにあります。直接HTMLを読み込む方法は時間がかかるためソースをシートに読込特定の文字で判断し必要部分を別のシートに活用していますが2021では動かなくなりました。約1万件ほどあるためこの方法をとっています。
(しーちゃん) 2025/05/05(月) 22:03:20

これで最後にします。

相変わらずエラー内容は開示しないのですね。

すでに付けられた解決策を行っているようにも思えず
自分の言いたい事だけを投稿するだけでは会話が成立しません。

(詠み人知らず) 2025/05/06(火) 06:14:46


2016では動いて2021では動かないのはなぜでしょうか?PCの入れ替えで発覚したもので、
XMLHTTPで読むのは避けたほうがよいかもしれません なぜでしょうか?
ちなみに今入院中ですし会社で自分が作成したもので疑問に思うことです。明確にリモートで変更したいので
お願いします。

(しーちゃん) 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.