Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7704 / 13645 ツリー ←次へ | 前へ→

【37400】IEを起動したあとのイベント ゆきえ 06/5/3(水) 20:03 質問[未読]
【37401】Re:IEを起動したあとのイベント かみちゃん 06/5/3(水) 20:20 発言[未読]
【37402】Re:IEを起動したあとのイベント ゆきえ 06/5/3(水) 20:38 発言[未読]
【37403】Re:IEを起動したあとのイベント かみちゃん 06/5/3(水) 20:39 発言[未読]
【37404】Re:IEを起動したあとのイベント ゆきえ 06/5/3(水) 20:59 発言[未読]
【37406】Re:IEを起動したあとのイベント ichinose 06/5/3(水) 22:02 発言[未読]
【37407】Re:IEを起動したあとのイベント ゆきえ 06/5/3(水) 22:21 お礼[未読]
【37408】Re:IEを起動したあとのイベント ichinose 06/5/4(木) 8:03 発言[未読]
【37409】Re:IEを起動したあとのイベント ゆきえ 06/5/4(木) 9:30 お礼[未読]

【37400】IEを起動したあとのイベント
質問  ゆきえ  - 06/5/3(水) 20:03 -

引用なし
パスワード
   マクロでIEを起動するのはOKなのですが
IEを起動後のWEBサイトでクリックして次のページに行ったときに
任意のマクロを実行することってできますか?

すみませんがよろしくお願いいたします。

【37401】Re:IEを起動したあとのイベント
発言  かみちゃん  - 06/5/3(水) 20:20 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> IEを起動後のWEBサイトでクリックして次のページに行ったときに
> 任意のマクロを実行することってできますか?

「次のページに行ったとき」というところがわかりません。
特定のURLの表示が完了するまで待つということはできますが・・・
もう少し具体的に説明していただければ、もう少しアドバイスできるかもしれませんが。

【37402】Re:IEを起動したあとのイベント
発言  ゆきえ  - 06/5/3(水) 20:38 -

引用なし
パスワード
   言葉足らずですみません・・・

>「次のページに行ったとき」というところがわかりません。
>特定のURLの表示が完了するまで待つということはできますが・・・
>もう少し具体的に説明していただければ、もう少しアドバイスできるかもしれませんが。

こんな流れをしたいと思うのですが
伝わってますかねぃ・・・?

1.マクロ実行
2.特定URLを表示
(マクロ終了or一時停止)
3.表示されたWEB上で(手動で)任意のリンクをクリック
4.リンク先を表示
5.(ページが変わると同時に)マクロ実行or再開

【37403】Re:IEを起動したあとのイベント
発言  かみちゃん  - 06/5/3(水) 20:39 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>3.表示されたWEB上で(手動で)任意のリンクをクリック

この部分をVBAで指定することはしないのでしょうか?

【37404】Re:IEを起動したあとのイベント
発言  ゆきえ  - 06/5/3(水) 20:59 -

引用なし
パスワード
   >>3.表示されたWEB上で(手動で)任意のリンクをクリック
>
>この部分をVBAで指定することはしないのでしょうか?

そうですね。
指定のリンク先ではなく
任意のリンク先をクリックしたあとに
マクロを動かしたいので・・・

やっぱり無理ですかねぃ・・・(涙)

【37406】Re:IEを起動したあとのイベント
発言  ichinose  - 06/5/3(水) 22:02 -

引用なし
パスワード
   ▼ゆきえ さん:
こんばんは。
>指定のリンク先ではなく
>任意のリンク先をクリックしたあとに
>マクロを動かしたいので・・・

新規ブックで試してください。

まず、「Microsoft Internet Controls」を参照設定して下さい。

Thisworkbookのモジュールに

'==========================================================
Public WithEvents ie As InternetExplorer
Public ieev As Boolean
'==========================================================
Private Sub ie_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  If ieev = True Then
    'ここに実行するコード
    MsgBox URL
    MsgBox TypeName(pDisp)
    End If
  ieev = True
End Sub
'==========================================================
Private Sub ie_OnQuit()
  Set ie = Nothing
End Sub
'==========================================================
Sub main()
  ieev = False
  Set ie = CreateObject("InternetExplorer.Application")
  With ie
    .Visible = True
    .Navigate "http://www.vbalab.net/"
    End With
End Sub

で Thisworkbook.mainを実行して下さい。

VBA質問箱が表示されます。
それぞれの質問箱へ移行することでイベントが発生します。

一例ですが、上記のようにIEのイベントを利用してはいかがですか?

【37407】Re:IEを起動したあとのイベント
お礼  ゆきえ  - 06/5/3(水) 22:21 -

引用なし
パスワード
   で、できました!!!
ありがとうございます。

>まず、「Microsoft Internet Controls」を参照設定して下さい。

よく知らないのですが↑を設定しないとダメなめなんですよね。
自動で上記の設定ができるとか、他の方法はないですよね?

何はともあれありがとうございます!

【37408】Re:IEを起動したあとのイベント
発言  ichinose  - 06/5/4(木) 8:03 -

引用なし
パスワード
   ▼ゆきえ さん:
おはようございます。

>
>>まず、「Microsoft Internet Controls」を参照設定して下さい。
>
>よく知らないのですが↑を設定しないとダメなめなんですよね。
>自動で上記の設定ができるとか、他の方法はないですよね?
参照設定をVBAで行うという仕様は、
Vbprojectを操作するコードで可能ですが、
う−ん、使わないほうがよいでしょう。
Excel2002からは、設定が必要ですから。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=37375;id=excel
ここでも同じような発言をしています。
特に不特定多数のVBAなんて知らない方がユーザーならば尚のことです。

参照設定を使わないなら、私が思いつくのは

Vbscriptを使用してしまう方法です。
VBSのコードで全部やってしまう方法です。
(つまり、本当ならVBAは要らない方法です)。

これも一例ですが、

テキストファイルに

'===================================================
  dim ie,ieev,e_ev
  ieev =0
  Set ie =wscript.CreateObject("InternetExplorer.Application", "ie_")
  With ie
    .Visible = True
    .Navigate "http://www.vbalab.net/"
    End With
  e_ev=0
  do while e_ev=0
   wscript.sleep 100
   loop
'==========================================
Sub ie_DocumentComplete(pDisp, URL)
  If ieev = 1 Then
    'ここに実行するコード
    WScript.Echo URL '現在のURLを表示
    End If
  ieev = 1
End Sub
'==========================================
Sub ie_OnQuit()
  Set ie = Nothing
  e_ev=1
End Sub

として、
ファイル名として、
Vbstext.Vbs なんて名前で保存します。


このファイルを直接起動してもよいですが、

VBAで起動するなら、

Sub main()
  CreateObject("wscript.shell").Run """" & ThisWorkbook.Path & "\vbstext.vbs"""
End Sub

'ブックとvbsファイルが同じフォルダ上にある場合

それより、どうしてですか?
参照設定したくない理由は?

【37409】Re:IEを起動したあとのイベント
お礼  ゆきえ  - 06/5/4(木) 9:30 -

引用なし
パスワード
   ありがとうございます。
できました!

>それより、どうしてですか?
>参照設定したくない理由は?

自分以外のユーザにも利用してもらうおうと考えていたため
ちょっと参照設定いじるのは微妙かと思っただけです。

7704 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free