• ベストアンサー

VBによるIE操作での必要な後処理について

VBでCOMを使用してのIEを操作するアプリをネットの皆さんのお知恵を拝借しながら、曲がりなりにも当初考えていた全機能をサポートすることができました。 つきましては、アプリの終了前に必要と思われる後処理がありましたらご教示頂きたくよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

何をどのように処理しているのか、説明がないのに答えようがないかと思いますが。 VB のバージョンですら書いておられないし、一般的な事でいえば、VB から Excel を操作した 場合と同様の処理が必要という事しかいえないかと。 IE の場合は、Excel と違いプロセスが終了しないとかの目に見える状況が現れにくいので より一層の注意ぶかく デクリメント しておく必要があります。

isunsun
質問者

お礼

内容をよく理解して、自作アプリにフィードバックし、完成度を上げたいと思います。 回答ありがとうございました。

isunsun
質問者

補足

具体性に欠ける漠然とした質問内容にお答え頂きありがとうございます。 残骸(ゴミ)を残していたり、OSのリソースを握ったままで終了しているようなバグがないかを心配しています。 このアプリを何回も実行して、OSに不都合が起きないかをテストする方法も考えられます(何回実行するかが問題ですが)。また、アプリが正常終了出来ていれば是とするすることでも良いとは思っていますが。 ツールやOSの機能を使用して心配しているようなバグがないかを調査する方法があれば教えて頂ければ幸いです。

関連するQ&A

  • VBによるIE操作におけるFRAMEのソースは?

    VBでIEを操作していますが、フレームで構成されたページがあります。そのFRAMEタグは、JavaScriptのdocument.writeで既述されています。このためか、そのページのフレーム数は0となっています。 このようなFRAMEに対応するソースを処理するには、どのようにすれば良いのでしょうか?

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub IE_Test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.Navigate "(表示したいページ)" 'ページの表示待ち   While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer '調べる項目に対して、、、 For yCNT = 3 To 102 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける ここがわからない。。。 (画像になっているハイパーリンクをクリックしたい、、、) 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '念のため、新しいウインドウの表示を待つ While newIE.readyState <> READYSTATE_COMPLETE Or newIE.Busy = True DoEvents Wend 'ページが表示されたので、表示された文章に対して、処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click '表示されたウインドウ(newIE)からデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIE(子IE)を閉じる newIE.Quit Set newIE = Nothing '前のIE(親IE)を閉じる   objIE.Quit set objIE = Nothing Next yCNT End Sub 上記が現在までのできているコードです。 ここにも色々間違いがある可能性もあります。 ご指摘頂けましたら幸いです。 よろしくお願いします。

  • Illustrator 処理速度 VB と JSX

    illustrator の自動化処理を制御するためのアプリを VB.NET と JSX で組んでいます。 バージョンはCS5です。 VB.NETとJSXでは、どちらの方が高速に処理できるのでしょうか? お詳しいかたみえましたらご教授ください。 よろしくお願いします。

  • WEB(ブラウザIE)を自動的に操作できるようなアプリ(登録系)を作りたい

    こんにちは。 お世話になります。 ひとつの例ですが、 「Visual Auction」というヤフーオークション管理の windowsアプリがあります。 その機能のひとつに自動出品というのがあり、 あらかじめ、データをCSVに作っておくと ヤフーオークションの出品画面が 次々と自動的に進んでいきます。 アプリがクリックしながら、登録しているようです。 どんな言語で開発しているのか、作者に問い合わせた ところ、回答はいただけませんでした。 つまり、WEB(ブラウザIE)を自動的に操作できるようなアプリ(登録系)を作りたいのですが、 どんな言語なら可能なのでしょうか? VB.netなら可能なのでしょうか?

  • vb2010でフォーム非表示で処理をする

    VB2010で起動から終了までフォームを一度も表示しないで処理をする方法についてご教示ください。 実際はフォームにPictureBoxがあって図形を描画し、保存後終了する処理を行います。 図形の内容が変更される可能性があり、調整段階ではフォームがあった方が便利なので 表示状態で作業し、最終的にフォームが非表示のアプリにしたいのです。 以前、プロジェクト内の何かのファイルに手作業でロジック(1~2行ほどで何かのプロパティをfalseに設定する)を追加したら非表示となると言うのを見つけて(WEB?)試したところうまくいったのですがその方法が思い出せず困っています。 曖昧で申し訳ありませんが上記の方法をご存知の方がおられましたらご教示ください。

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub ie_test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.navigate "処理したいページ" 'ページの表示待ち While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer Dim wait_time As Date Dim yCNT As Long Dim i As Integer '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'リンクの貼ってある画像をクリック For i = 0 To objIE.document.images.Length - 1 If InStr(objIE.document.images.Item(i).outerHTML, "image/btn131b1.gif") > 0 Then objIE.document.images.Item(i).Click End If Next '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '新しいウィンドウのログインボタンを押す Dim objINPUT As Object 'Inputタグ格納用 For Each objINPUT In newIE.document.all.tags("INPUT") If objINPUT.Value = "ログイン" Then objINPUT.Click Exit For End If Next '調べる項目 For yCNT = 3 To 1002 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける 'ページが表示されたので処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click ※ここでオブジェクト変数。。。のエラーが発生する※ '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop '表示されたウインドウからデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIEを閉じる newIE.Quit Set newIE = Nothing '前のIEを閉じる objIE.Quit Set objIE = Nothing Next yCNT End Sub 初心者なので色々調べたのですがわかりませんでした。。。

  • VB6の寿命

    10年ほど掛け、VB6を使って趣味で作ったプログラムがあります。 ソースコードが数万行あり、今さら新バージョンに移植する気力がありません。 現在は、XPで使用しておりますが、7や8上でもVB6は稼働するものなのでしょうか? また、VB本体だけでなく、Office2003のAccessデータベース(mdb)に接続するデータベースアプリなので、Office2003が最新OSで稼働するかも心配です。 XPサポート終了後、どうすれば良いか、迷っています。 良い知恵はありますか?

  • VistaでのVB6アプリ競合?

    遠方のお客様に購入いただいたVB6アプリをVISTAにインストール していただきインストールは正常に終了しましたが、IEが固まり YahooBB回線が繋がらなくなるという現象が起きました。 不確かな内容ですがVB6アプリのインストールにより、 このような経験をされた方いらっしゃれば解決方法をご教授願います。 このアプリではIE、LAN、通信に関連する処理は行っていません。 今までXPで600本、VISTAで15本の使用実績があり今回の現象は初めてです。

  • VB.net(2003)でのexcel操作

    現在vb.netを使用してのExcelそうさプログラミングを作っており、excel sheetへの文字入力はできるようになりました。そこで質問なのですが、excelシートの特定のセルの値が5だった場合にその隣のセルのあたいを10にするというプログラムを作りたいのですが、VBAではとても簡単なのですが、vb.netを使用してどのようにやればよいかがわからないのでご教示いただきたいです。activecell.offset(0,1)やcells.findのような、VBAをVB.netから使用する方法はあるのでしょうか?

  • VBスクリプト---アプリの終了について

    VBスクリプト---アプリの終了について お世話になります。 VBスクリプトを使い始めたのですが、アプリの終了の仕方が分かりません。 起動は、 WSHShell.Run とか、 objShell.Run で分かるのですが、終了のメソッドが分からないのです。 どなたかご教示ください

専門家に質問してみよう