以下のモジュールを参考にしてください。 標準モジュール***************************************
'----------------------------------------------------------------------
'クラス名またはキャプションタイトルを与えてウィンドウハンドルを取得する関数
'
'戻り値 成功 =
指定したクラスとウィンドウ名を持つウィンドウのハンドル
'
失敗 = NULL
'----------------------------------------------------------------------
Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
'----------------------------------------------
'ウィンドウに関する情報を取得する関数
'
'戻り値 成功 =
要求したデータ(32ビット値)
'
失敗 = 0
'----------------------------------------------
Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
'----------------------------------------------
'ウィンドウの属性を変更する関数
'
'戻り値 成功 =
変更前の値
'
失敗 = 0
'----------------------------------------------
Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
'----------------------------------------------
'ウィンドウのメニューバーを再描画する関数
'
'戻り値 成功 = 0以外
'
失敗 = 0
'----------------------------------------------
Declare Function DrawMenuBar Lib "user32" _
(ByVal hwnd As Long) As Long
Public Const GWL_STYLE = -16&
'ウィンドウスタイルを取得する
Public Const WS_SYSMENU = &H80000
'タイトルバーにコントロールメニューボックスを持つウィンドウ
標準モジュールここまで***********************
ユーザーフォーム1***************************
Option Explicit
Private Sub UserForm_Initialize()
UserForm1.Caption = UserForm1.Caption & "(終了=Alt+F4)"
'*******************************
'ユーザーフォームの×を消す設定
'*******************************
Dim hwnd As Long
Dim lngNewLong As Long
Dim rc As Long
Dim strClassName As String 'クラス名
'Excelのクラス名を指定
Select Case Left(Application.Version,
1)
Case Is <= 8
strClassName =
"ThunderXFrame" 'エクセル97
Case Is > 8
strClassName =
"ThunderDFrame" 'エクセル2000
End Select
'ウィンドウのハンドルを取得
hwnd = FindWindow(strClassName, _
Me.Caption)
'ウィンドウに関する情報を取得
lngNewLong = GetWindowLong(hwnd, _
GWL_STYLE)
'ウィンドウの属性を変更
rc = SetWindowLong(hwnd, _
GWL_STYLE, _
lngNewLong And Not WS_SYSMENU)
'ウィンドウのメニューバーを再描画
rc = DrawMenuBar(hwnd)
End Sub
ユーザーフォーム1ここまで************************
|