- PR -

MSXML2.XMLHTTPが2回目には作成できない。

1
投稿者投稿内容
magtac
会議室デビュー日: 2002/07/30
投稿数: 12
お住まい・勤務地: カナダ バンクーバー近郊
投稿日時: 2007-01-11 18:45
稲葉と申します。

HTAでVBScriptを使っています。

Web Serverにある値を取り込みたく、

Function getServerData(strURL)
Dim xmlhttp
Dim strRtn

Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
If (Err.Number <> 0) Then
Set xmlhttp = CreateObject("MSXML.XMLHTTPRequest")
End If
'HttpRequest
xmlhttp.Open methodType, strURL, False
xmlhttp.send(null)
strRtn=xmlhttp.responseText
Set xmlhttp=Nothing
getServerData=strRtn

End Function

 を作成しました。

 一度目に呼び出すと、ページソースが受け取れますが、二度目に呼び出すと、
ActiveX コンポーネントはオブジェクトを作成できませんとエラーになります。

 原因をご存知でしたら教えてください。もしくは、間違いをご指摘して下さい。

 よろしくお願いします。
magtac
会議室デビュー日: 2002/07/30
投稿数: 12
お住まい・勤務地: カナダ バンクーバー近郊
投稿日時: 2007-01-13 03:11
 自己レスです。

 一度目に上記関数を読んだ後、呼ばれる関数に
On Error Resume Next

 の記述があり、それをコメントアウトすることで、エラーが出なくなりました。

 原因はわかりません。

 以上です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-13 16:19
引用:

magtacさんの書き込み (2007-01-13 03:11) より:

 一度目に上記関数を読んだ後、呼ばれる関数に
On Error Resume Next

 の記述があり、それをコメントアウトすることで、エラーが出なくなりました。


普通は逆だと思いますが... (On Error Resume Next はエラーを無視しますから)

On Error Resume Next をコメント アウトして、エラーが解消されるということは、
CreateObject 関数のエラーをさらに上位が拾って握り潰してしまっているような気がします。

しかも、On Error Resume Next をコメント アウトする前の状態で、

引用:

ActiveX コンポーネントはオブジェクトを作成できませんとエラーになります。


が、出力されているというのも妙です。
上位で Err.Raise でもされていたというのでしょうか?

そのあたりの情報が全くないため、原因を想像するのも容易ではありません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)