![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
VB6で作成したAPでエラーで出て困っております。
調べても解決策が見つからず、皆様のお力をお借りしたいと思います。
【環境】
Windows XP SP3
microsoft visual studio 6.0 sp6
【現象】
webbrowserコントロールを利用し、GIFファイルの表示を行う処理で以下のエラーが発生。
実行時エラー '-2(fffffffe)':
オートメーション エラーです
【ソース】
Private GifLoad As Boolean
--------------------------------------------------------------------------------
Private Sub GifFileLoad()
Dim Hstyl As HTMLStyle
Dim GifName As String
GifName = Gifファイルのフルパス
WebBrowser.Navigate GifName
GifLoad = False
'表示を読み込むまで待機
Do
DoEvents←ここでエラーが発生
Loop Until GifLoad
Set Hstyl = WebBrowser.Document.Body.Style
With Hstyl
.OverFlow = "hidden"
.MarginLeft = "0px"
.MarginTop = "0px"
End With
Set Hstyl = Nothing
End Sub
--------------------------------------------------------------------------------
Private Sub WebBrowser_DocumentComplet(ByVal pDisp As Object,URL As Variant)
GifLoad = True
End Sub
--------------------------------------------------------------------------------
エラー発生後、メッセージのデバッグボタンでデバッグモードに移行すると、問題なくDoEventsを通り抜けます。単純にResume Naxtを追記したらいいだけのような気もするのですが、エラーの内容、原因が特定できず悩んでいます。
この事象に対して情報をお持ちの方がおられましたら、ご教授お願いいたします。
No.1ベストアンサー
- 回答日時:
自信はありませんが、なんとなく、DoEvents が多重呼び出しされて、おかしくなっているのかな、という気がします。
試しに、次の Sleep 関数を宣言しておいて、
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Do
DoEvents
Sleep 100
Loop Until GifLoad
のようにしてみるとどうなるでしょうか?
それと、
Set Hstyl = WebBrowser.Document.Body.Style
With Hstyl
.OverFlow = "hidden"
.MarginLeft = "0px"
.MarginTop = "0px"
End With
の部分を
Private Sub WebBrowser_DocumentComplet(ByVal pDisp As Object,URL As Variant)
の中に入れてやれば、Do ~ Loop を使わなくて済むと思うのですが、そうしない理由がなにかあるのでしょうか?
この回答への補足
レスありがとうございます。
WebBrowser_DocumentCompletの中で処理を行わない理由は、前後にも似たような処理を行っており、確実にGifファイルが表示されるまで待機させたいためです。
・Sleep関数を使う方法
ご教授いただきありがとうございます。
現在、試してみたところ、エラーは出ておりません。
ただ、後付で申し訳ないのですが、常にエラーが出るわけではなく、数回~数十回に1回ほどの間隔で発生しております。
今後も注意して検証していこうと思います。
なお、引き続いて「実行時エラー -2」の情報を募集中です。
もし具体的にエラーの内容をご存知の方おられましたら、ご助力お願いします。
お礼が遅れて申し訳ありません。
とりあえず解決しました。
WebbrowserコントロールはIEの一部Dllを使用しているそうで、
試しにIEを入れなおして見た所正常に動作するようになりました。
違いを比べてみたところ、
Webbrowserコントロールの参照しているDllがshdocvw.dllからieframe.dllに変わっていました。
ちなみに、実行時エラー -2についてですが、
詳しいことはわかりませんでしたが、DoEventsでエラーが発生する度に
「実行時エラー -2」→「実行時エラー -4」→「実行時エラー -6」と値が変わっていきます。
上記の結果から、特に意味のないエラー?ではないかなと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) IBM Notes9のメールをExcelVBAにて送信するコードについての質問です。 以下のコードを 3 2023/06/21 17:58
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
デバッグ中のエラーのことで教...
-
Excelのエラーで困ってます。
-
Handlesについて
-
バッチからsqlplusの接続エラー...
-
VC++6.0 の/Zm オプションについて
-
sys/time.hのインクルードがで...
-
VBAでファイルを開くプログラム...
-
HANDLEの宣言でのエラー
-
BC30002: 型 'ListItem' が定義...
-
vbsで作ったプログラムを続けて...
-
「メモリが"read"...」アプリケ...
-
Sleepを使って処理を一時停止さ...
-
EXEで実行すると発生するORA:06...
-
VC2010のビルドエラーを全部出...
-
makedependのエラー
-
exception:java.lang.NumberFor...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
sys/time.hのインクルードがで...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
visual C++ でビルドの中止がで...
-
デバッグ中のエラーのことで教...
-
multiple definitionというエラー
-
ビルドが失敗してしまいます
-
LPCWSTRとchar
-
Handlesについて
-
BC30002: 型 'ListItem' が定義...
-
左側がクラス、構造体、共用体...
おすすめ情報