![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセル2003VBAで以下のコードを実行するとBrowser1がエラーとなります。
どなたか解決法がわからないでしょうか。
よろしくお願いします。
\'IEのウィンドウハンドルを取得
Dim hwnd As Long
hwnd = FindWindow(\"IEFrame\", vbNullString)
\'ウィンドウを前面に表示する
If hwnd = 0 Then
MsgBox \"IEが起動していません\"
Exit Sub
End If
SetForegroundWindow hwnd
Dim Browser1 As Object
Dim elm As Object
Dim i As Integer
Const READYSTATE_COMPLETE As Long = 4
\'次の画面が表示されるまで待機
While Browser1.ReadyState <> READYSTATE_COMPLETE
While Browser1.Busy = True
DoEvents
Wend
Wend
Set elm = Browser1.document.getElementsByTagName(\"INPUT\")
For i = 0 To elm.Length - 1
If (elm(i).Name = \"q\") Then elm(i).Focus: Exit For
Next i
No.2ベストアンサー
- 回答日時:
ちょっと調べてましたが、自力で探すしかないようです
http://www.ne.jp/asahi/hishidama/home/tech/excel …
の”既存のIEを探す方法”にサンプルソースとプロパティが載ってます
>このコードを追記してしまうと、ウィンドウが新しく開いてしまいますので、使いたくないのですが。上記のコードでは暴走するのですか。。。
なるほど。
暴走に見えたのですが、IEの起動待ちだったかもしれません
(でも、5分間無反応でした)
参考URL:http://www.ne.jp/asahi/hishidama/home/tech/excel …
参考URLありがとうございます!
助かりました☆
以下のコードでなんとかエラー解決できました。
------------------------------------------------------
'SetForegroundWindowの定義
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
'FindWindow関数の定義
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'************************************************************
'IEのウィンドウハンドルを取得
'************************************************************
Dim hwnd As Long
hwnd = FindWindow("IEFrame", vbNullString)
'見つからなければ戻り値0
'************************************************************
'ウィンドウを前面に表示する
'************************************************************
If hwnd = 0 Then
MsgBox "IEが起動していません"
Exit Sub
End If
SetForegroundWindow hwnd
'=============================================
'チェックボックス検索開始
'=============================================
Dim i as Integer
Dim Browser1 As Object
Dim elm As Object
Dim objShell As Object
Dim ShWins As Object
Dim IE As Object
Const READYSTATE_COMPLETE As Long = 4 'IEオブジェクト状態(4=読み込み完了)
Set objShell = CreateObject("Shell.Application")
Set ShWins = objShell.Windows()
For Each IE In ShWins
Set Browser1 = IE
Exit For
Next
'次の画面が表示されるまで待機
While Browser1.ReadyState <> READYSTATE_COMPLETE
While Browser1.Busy = True
DoEvents
Wend
Wend
Set elm = Browser1.document.getElementsByTagName("INPUT")
For i = 0 To elm.Length - 1
'If (elm(i).Name = "q") Then elm(i).Focus: Exit For
MsgBox elm(i)
Next i
------------------------------------------------------
ただ、メッセージボックスに何も表示されないのです。。。
DoEventsってほんとに重いですねぇ。
No.1
- 回答日時:
Browser1の設定がないからですね
http://www.ne.jp/asahi/hishidama/home/tech/excel …
Set Browser1 = CreateObject("InternetExplorer.Application")
※上記の追記でBrowser1のエラーはでなくなりましたが、暴走しますよ。。。
参考URL:http://www.ne.jp/asahi/hishidama/home/tech/excel …
この回答への補足
早速のご回答ありがとうございます。
Set Browser1 = CreateObject("InternetExplorer.Application")
このコードを追記してしまうと、ウィンドウが新しく開いてしまいますので、使いたくないのですが。上記のコードでは暴走するのですか。。。
すでに開いているIEの画面上でタグ名を取得していきたいので、
どなたかご存知の方、アドバイスよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBAで2つEXCELを起動した...
-
エクセルでワークシートメニュ...
-
パワーポイントをエクセルファ...
-
【スプレドシート】IMPORTRANGE...
-
エクセルで「500時間」を「何日...
-
エクセルで数値の上3桁で切捨...
-
エクセルを開いたときのシート
-
EXCELで上書き保存しないと反映...
-
エクセルでファイルを閉じても...
-
エクセル 列の最大数はIV?
-
エクセルで使えるかわいい枠を...
-
いきなりPDFでPDFファイルを開...
-
メールのエクセル添付ファイル...
-
エクセルで検索して、ヒットセ...
-
エクセル0:00と表示される原因
-
差し込み印刷での小数点表示に...
-
Lotus 1-2-3のファイルをExcel...
-
エクセルで複数のブックで「元...
-
エクセルVBAでアクセスファイル...
-
計算能力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBAで2つEXCELを起動した...
-
エクセルでワークシートメニュ...
-
タグ名取得でエラー
-
excel2007で音声ファイル再生
-
パワーポイントをエクセルファ...
-
【スプレドシート】IMPORTRANGE...
-
エクセルで「500時間」を「何日...
-
EXCELで上書き保存しないと反映...
-
エクセルでファイルを閉じても...
-
エクセルでファイルを開かずに...
-
エクセル0:00と表示される原因
-
エクセルを上書き保存したのに...
-
エクセル 列の最大数はIV?
-
いきなりPDFでPDFファイルを開...
-
エクセルで使えるかわいい枠を...
-
エクセル関数の解読サイトなん...
-
エクセルVBAでアクセスファイル...
-
MAC フォルダ内のPDFファイル名...
-
メール添付されているファイル...
-
Lotus 1-2-3のファイルをExcel...
おすすめ情報