VBAでユーザーフォームを最前面に表示する方法
こちらにそのものズバリの回答がありました。
http://oshiete.goo.ne.jp/qa/2152631.html
で、自分の場合はこんな風にフォームのコードに記述しました。
Option Explicit Private Declare Function GetForegroundWindow Lib "user32" () 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 Const HWND_TOPMOST As Long = -1 Private Const SWP_NOSIZE As Long = &H1& Private Const SWP_NOMOVE As Long = &H2& Public frmMe As frmModeless Private Sub btnClose_Click() Unload frmMe End Sub Private Sub UserForm_Activate() Call SetWindowPos(GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) Me.StartUpPosition = 1 End Sub