[[20191202130953]] 『Excel vbaで起動画面を最前面に表示したい』(nabe_y) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Excel vbaで起動画面を最前面に表示したい』(nabe_y)

Excel vba にて

Shell "C:\Program Files\XXX\XXX\ApplicationHost.exe", vbNormalFocus

パッケージソフトを起動
sendkeysを使用して、請求書発行画面を選択
sendkeysでエンター

請求書発行画面は起動されるが、前面に表示されない。

この画面を前面に表示する方法を教えて頂ければと思います。
宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


何のアプリか判りませんが、APIで無理矢理前面にしてしまうとか?
 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
   (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 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 Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
 End Type
 Const HWND_TOP = 0
 Const HWND_TOPMOST = -1

 Sub test()
    Dim ih As Long
    Dim R As RECT

    Shell "notepad.exe", vbNormalFocus
    ih = FindWindow(vbNullString, "無題 - メモ帳")
    GetWindowRect ih, R
    SetWindowPos ih, HWND_TOP, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, 0
 End Sub

HWND_TOP で駄目だった場合は、HWND_TOPMOSTで最前面にしてみてください。
(???) 2019/12/02(月) 14:06


10回起動テストを行って、問題なく最前面に表示されました。

有難うございました。

(nabe_y) 2019/12/02(月) 16:09


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.