Access VBA質問箱 IV

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

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


1690 / 2272 ツリー ←次へ | 前へ→

【5732】IEウィンドウ操作方法 いなたく 05/8/3(水) 9:48 質問[未読]
【5735】Re:IEウィンドウ操作方法 小僧 05/8/3(水) 11:09 回答[未読]
【5737】Re:IEウィンドウ操作方法 いなたく 05/8/3(水) 11:37 お礼[未読]

【5732】IEウィンドウ操作方法
質問  いなたく  - 05/8/3(水) 9:48 -

引用なし
パスワード
   こんにちは。

フォーム上でボタンをクリックしIEが立ち上がる設定をしているのですが、
ボタンをクリックした際に「IEウィンドウを別ウィンドウで開き最前面に表示」
をしたいのですが、現在「IEウィンドウを別ウィンドウで開く方法」と
「IEを最前面で開く方法」と別々の記載方法になることがわかり困っています。

================= IEを別ウィンドウで開く方法 ==================

Private Sub ボタン_Click()
  Dim ObjIE As Object
  Set ObjIE = CreateObject("InternetExplorer.Application")
  ObjIE.Navigate "http://www.yahoo.co.jp"
  ObjIE.Visible = True
  Set ObjIE = Nothing
End Sub

===============================================================
メリット :IEを別ウィンドウで開く。
デメリット:IEウィンドウが最後面で開く。

================= IEを最前面で開く方法 ==================

Private Sub ボタン_Click()
  Dim ObjIE As Object
  Set ObjIE = CreateObject("Wscript.Shell")
  ObjIE.Run "http://www.yahoo.co.jp"
  Set ObjIE = Nothing
End Sub

=========================================================
メリット :IEを最前面で開く。
デメリット:別にIEウィンドウが起動していた場合、そのIEウィンドウを
      私用して画面を開く。

調べたかぎりでは上記どちらかしか現段階では方法が見つからず、
どちらかの機能を捨てなければいけない状態です。
何とかどちらの機能も満たした記載方法はありませんでしょうか?
どうかお力をお貸しください!
よろしくお願い致します。m(__)m

【5735】Re:IEウィンドウ操作方法
回答  小僧  - 05/8/3(水) 11:09 -

引用なし
パスワード
   ▼いなたく さん:
こんにちは。

>「IEウィンドウを別ウィンドウで開き最前面に表示」

自分も色々やっていたのですが、
最前面に表示されたり最小化で起動されたりと
同じコードでもうまくいったりいかなかったりでした。

Web検索してみたところ、裏で何かしらの処理が行われていると
最前面で起動されない事があるそうです。
APIを使うと最前面の表示ができる模様です。

'標準モジュールに宣言
Public Declare Function SetWindowPos _
        Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
        ByVal X As Long, ByVal Y As Long, ByVal Cx As Long, _
        ByVal Cy As Long, ByVal wFlags As Long) As Long

'手前に表示のフラグ
Public Const Temae = -1
Public Const Hyouji = &H40

'フォームに記述
Private Sub ボタン_Click()
Dim objIE As Object
  Set objIE = CreateObject("InternetExplorer.application")
  objIE.Navigate "http://www.yahoo.co.jp"
  SetWindowPos objIE.hwnd, Temae, _
      objIE.Left, objIE.Top, objIE.Width, _
      objIE.Height, Hyouji
  Set objIE = Nothing
End Sub


当方の不勉強で申し訳ないのですが、APIについての知識は殆どありません。
うまくいくと良いのですが…。

【5737】Re:IEウィンドウ操作方法
お礼  いなたく  - 05/8/3(水) 11:37 -

引用なし
パスワード
   小僧さん、こんにちは。

うまく動作いたしましたぁo(^v^)o
このような方法もあるんですね!たいへん勉強にもなりました。
本当にどうもありがとうございましたm(__)m

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