エクセルマクロでIE立ち上げる方法について質問です。(解決で150P以上)


次のような事は可能でしょうか?
可能でしたらコード教えて下さい。

①下の【Sub test55】を改造してください
下のtest55で作ったIEに名前を付けたい。

②【Sub test56】を作ってください
55で立ち上げたIEにyahoo.CO.JPを表示させるだけのマクロ
(上で名前付けた名前を使うイメージ)

③【Sub test57】を作ってください
55で立ち上げたIEを閉じるだけのマクロ
(同上)

※現状は、毎回IE立ち上げ→開放作業を繰り返してやってるので、名前付けてそれを使い回しできたらいいなぁと思い質問してみました。そもそも名前付けたりはできないのかもしれませんが…
とりあえずご回答お待ちしております!


Sub test55()
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "about:blank"
End Sub

回答の条件
  • 1人5回まで
  • 登録:2007/12/26 16:15:09
  • 終了:2007/12/29 05:04:54

ベストアンサー

id:sugar_yas No.2

sugar_yas回答回数1ベストアンサー獲得回数12007/12/26 19:57:01

ポイント120pt

'参照設定> Microsoft Internet Controls

Private objIE As InternetExplorer

Sub test55()

'Dim objIE As Object

Set objIE = CreateObject("InternetExplorer.application")


objIE.Visible = True

objIE.Navigate "about:blank"


End Sub

Sub test56(URL_Name As String)

If (Not objIE Is Nothing) Then

Call objIE.Navigate(URL_Name)

End If

End Sub

Sub test57()

If (Not objIE Is Nothing) Then

Call objIE.Quit

Set objIE = Nothing

End If

End Sub


Sub wait()

Dim waitTime As String

'数秒ループ

waitTime = Right(CInt(Format(Time, "SS")) + 5, 1)

Do While (waitTime <> Right(Format(Time, "SS"), 1))

Loop

End Sub

Sub test()

Call test55

Call wait

Call test56("http://yahoo.co.jp")

Call wait

Call test56("http://goo.ne.jp")

Call wait

Call test57

End Sub

id:gsjapan

おーよく解りませんが動きました!

たぶんこのカタチが求めてた答えなんじゃないかな思うんですが、知識不足ででこれが大正解なのかどうか自体解りかねるというのが現状なんですが…w

じっくり勉強してみたいと思います。ありがとうございました。(+100P)

2007/12/26 23:47:40

その他の回答(1件)

id:oshietechonmage No.1

oshietechonmage回答回数1ベストアンサー獲得回数02007/12/26 17:06:41

ポイント100pt

②と③ですが、

【Sub test56】既存のIEのページ変更

Sub test56()
  Dim oSH,oIE,oMyIE
  Set oSH = CreateObject("Shell.Application")
  Set oMyIE = Nothing

  For Each oIE In oSH.Windows
    If InStr(oIE.FullName,"iexplore.exe") > 0 Then
      Set oMyIE = oIE
      Exit For
    End If
  Next

  
  If oMyIE Is Nothing Then Exit Sub
  oMyIE.Navigate "http://www.yahoo.co.jp/"
  Set oMyIE = Nothing
End Sub

【Sub test57】既存のIEを終了

Sub test56()
  Dim oSH,oIE,oMyIE
  Set oSH = CreateObject("Shell.Application")
  Set oMyIE = Nothing

  For Each oIE In oSH.Windows
    If InStr(oIE.FullName,"iexplore.exe") > 0 Then
      Set oMyIE = oIE
      Exit For
    End If
  Next

  If oMyIE Is Nothing Then Exit Sub
  oMyIE.Quit
  Set oMyIE = Nothing
End Sub

※ie6で確認しましたが他のバージョンでは、"iexplore.exe"が異なるかもしれません。

id:gsjapan

動きました(IE6)。

この場合、『どのIEの表示を変えるか』とか『どのIEを閉じるか』といった指定はできないみたいですね。

可能なら指定までできるといいんですが、やはり名前付けたりとかは無理なんでしょうか…?

しかしほぼ希望の動きはしておりますので。応用して使わせて頂きますね。

ありがとうございました!(+100P)

2007/12/26 22:31:29
id:sugar_yas No.2

sugar_yas回答回数1ベストアンサー獲得回数12007/12/26 19:57:01ここでベストアンサー

ポイント120pt

'参照設定> Microsoft Internet Controls

Private objIE As InternetExplorer

Sub test55()

'Dim objIE As Object

Set objIE = CreateObject("InternetExplorer.application")


objIE.Visible = True

objIE.Navigate "about:blank"


End Sub

Sub test56(URL_Name As String)

If (Not objIE Is Nothing) Then

Call objIE.Navigate(URL_Name)

End If

End Sub

Sub test57()

If (Not objIE Is Nothing) Then

Call objIE.Quit

Set objIE = Nothing

End If

End Sub


Sub wait()

Dim waitTime As String

'数秒ループ

waitTime = Right(CInt(Format(Time, "SS")) + 5, 1)

Do While (waitTime <> Right(Format(Time, "SS"), 1))

Loop

End Sub

Sub test()

Call test55

Call wait

Call test56("http://yahoo.co.jp")

Call wait

Call test56("http://goo.ne.jp")

Call wait

Call test57

End Sub

id:gsjapan

おーよく解りませんが動きました!

たぶんこのカタチが求めてた答えなんじゃないかな思うんですが、知識不足ででこれが大正解なのかどうか自体解りかねるというのが現状なんですが…w

じっくり勉強してみたいと思います。ありがとうございました。(+100P)

2007/12/26 23:47:40

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません