閉じる ( X ) オプションを Excel ユーザーフォームから削除するにはどうすればよいですか? すでに説明した以下のリンクを取得しました。 http://www.excelforum.com/excel-programming-vba-macros/694008-remove-user-form-borders.html
しかし、私は彼らが与えたものを手に入れています。助けてください....
閉じる ( X ) オプションを Excel ユーザーフォームから削除するにはどうすればよいですか? すでに説明した以下のリンクを取得しました。 http://www.excelforum.com/excel-programming-vba-macros/694008-remove-user-form-borders.html
しかし、私は彼らが与えたものを手に入れています。助けてください....
まず、フォームを閉じるための明白な方法を少なくとも 1 つ含めるようにしてください!!
閉じるをクリックした後にメッセージ ボックスでエンド ユーザーを煩わす代わりに、閉じるを完全に非表示にします。
'//Find the userform's Window
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
'//Get the current window style
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
'//Set the new window style
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Const GWL_STYLE = -16
Const WS_SYSMENU = &H80000
Private Sub UserForm_Initialize()
Dim hWnd As Long, lStyle As Long
If Val(Application.Version) >= 9 Then
hWnd = FindWindow("ThunderDFrame", Me.Caption)
Else
hWnd = FindWindow("ThunderXFrame", Me.Caption)
End If
'//Get the current window style and turn off the Close button
lStyle = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong hWnd, GWL_STYLE, (lStyle And Not WS_SYSMENU)
End Sub
ALT-F4 で閉じないようにしたい場合は、これも使用します。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
End If
End Sub