掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SetForegroundWindow でアクティブにならない場合には? (ID:111748)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
やりたいことと、何が問題なのか、明記してもらわないと・・・ 多分、コードから推察するに、アクティブにしたはずのVBの フォームが、エクセルのウィンドウの後ろに隠れてしまう・・・ と言うことだと思うのですが・・・ ● まず私のWinXPでは、発生しませんでした。 多分、ウィンドウメッセージの発生順番と、CPU等の 性能とによるものではないかと思います・・・ 解決策になるかどうか・・・ Private Const HWND_TOP = 0 Private Const HWND_TOPMOST = -1 Private Const SWP_SHOWWINDOW = &H40 Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private 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 Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private mXLApp As Excel.Application Private rt As RECT Private Sub Command1_Click() Dim wResult As Long wResult = GetWindowRect(mXLApp.hwnd, rt) wResult = SetWindowPos(mXLApp.hwnd, HWND_TOPMOST, rt.Left, rt.Top, rt.Right, rt.Bottom, SWP_SHOWWINDOW) 'DoEvents wResult = GetWindowRect(Me.hwnd, rt) wResult = SetWindowPos(Me.hwnd, HWND_TOPMOST, rt.Left, rt.Top, (rt.Right - rt.Left), (rt.Bottom - rt.Top), SWP_SHOWWINDOW) End Sub これではダメですか? 以上。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.