Point:ユーザーフォームの閉じるボタンを消したい。 'APIの宣言
'ウィンドウハンドルを取得する関数
Public Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String _
, ByVal lpWindowName As String) As Long
'ウィンドウに関する情報を返す関数
Public Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hWnd As Long _
, ByVal nIndex As Long) As Long
'ウィンドウの属性を変更する関数
Public Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hWnd As Long _
, ByVal nIndex As
Long, ByVal dwNewLong As Long) As Long
'メニューバーを描画する関数
Public Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long
'スタイルを取得する定数
Public Const GWL_STYLE As Long = -16&
'ウィンドウスタイル
Public Const WS_SYSMENU As Long = &H80000
'非表示用のコード
Sub BoxHide()
Dim hWnd As Long
Dim lngWstyle As Long
'Excelのハンドル
hWnd =
FindWindow("ThunderXFrame", Application.Caption)
lngWstyle = GetWindowLong(hWnd, GWL_STYLE)
'閉じるボタンの消去
SetWindowLong hWnd, GWL_STYLE, lngWstyle _
And (Not
WS_SYSMENU)
'メニュー再描画
DrawMenuBar hWnd
End Sub
'表示用コード
Sub BoxShow()
Dim hWnd As Long
Dim lngWstyle As Long
'Excelのハンドル
hWnd = FindWindow("XLMAIN", Application.Caption)
'閉じるボタンの表示
lngWstyle = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong hWnd, GWL_STYLE, lngWstyle _
Or WS_SYSMENU
'メニュー表示し直し
DrawMenuBar hWnd
End Sub
|