Here is an alternative.
Put the button in your custom form. For demo purpose, I use this

Then put this code in a custom form
Private Sub CommandButton1_Click() Unload Me Application.Visible = True End Sub
Then paste this on top of your class module
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Dim Ret As Long, ChildRet 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 = -1 Private Const SWP_NOACTIVATE = &H10 Private Const SWP_SHOWWINDOW = &H40
Finally, change your Sub ShowForm() to
Public Sub ShowForm() Dim frm As New UserForm1 Dim Ret As Long frm.Show vbModeless Application.Visible = False Ret = FindWindow("ThunderDFrame", frm.Caption) SetWindowPos Ret, HWND_TOPMOST, 100, 100, 250, 200, _ SWP_NOACTIVATE Or SWP_SHOWWINDOW End Sub
This is what you get

EDIT
More thoughts. To prevent the user from creating more custom forms when the user clicks on the emoticon, change Sub ShowForm() to below. (An alternative would be to disable the emoticon and enable it when unloading the form?)
Public Sub ShowForm() Dim frm As New UserForm1 Dim Ret As Long Dim formCaption As String '~~> Set Userform Caption formCaption = "Blah Blah" On Error Resume Next Ret = FindWindow("ThunderDFrame", formCaption) On Error GoTo 0 '~~> If already there in an instance then exit sub If Ret <> 0 Then Exit Sub frm.Show vbModeless frm.Caption = formCaption Application.Visible = False Ret = FindWindow("ThunderDFrame", frm.Caption) SetWindowPos Ret, HWND_TOPMOST, 100, 100, 250, 200, _ SWP_NOACTIVATE Or SWP_SHOWWINDOW End Sub