Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


34621 / 76734 ←次へ | 前へ→

【47320】Re:ユーザーフォームの閉じるボタン
回答  Kein  - 07/3/7(水) 22:47 -

引用なし
パスワード
   Win32APIを使わないと出来ません。
以下のコードを全て、フォームモジュールの先頭から入れて下さい。

Private Declare Function FindWindow Lib "user32.dll" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias _
"GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias _
"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hwnd As Long) As Long

Private Const GWL_STYLE = -16
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_THICKFRAME = &H40000
Private Const WS_SYSMENU = &H80000

Private Sub UserForm_Initialize()
  Dim hwnd As Long, lngNew As Long, rc As Long
 
  hwnd = FindWindow("ThunderDFrame", Me.Caption)
  lngNew = GetWindowLong(hwnd, GWL_STYLE)
  rc = SetWindowLong(hwnd, GWL_STYLE, lngNew And _
  (Not WS_SYSMENU))
  rc = DrawMenuBar(hwnd)
End Sub

Private Sub UserForm_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Dim hwnd As Long, lngNew As Long, rc As Long

  hwnd = FindWindow("ThunderDFrame", Me.Caption)
  lngNew = GetWindowLong(hwnd, GWL_STYLE)
  rc = SetWindowLong(hwnd, GWL_STYLE, lngNew Or WS_SYSMENU _
  Or WS_THICKFRAME Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX)
End Sub

ユーザーフォームを Show したあと、タイトルバーを確認したら
それをクリックして下さい。ボタンが復活すると思います。
でも念の為、テストする際はコマンドボタンを配置して UserForm を
Unload できるイベントも追加しておいた方がいいです。

5 hits

【47315】ユーザーフォームの閉じるボタン Hiyo 07/3/7(水) 22:12 質問
【47317】Re:ユーザーフォームの閉じるボタン ぱっせんじゃー 07/3/7(水) 22:25 発言
【47318】Re:ユーザーフォームの閉じるボタン ponpon 07/3/7(水) 22:28 発言
【47320】Re:ユーザーフォームの閉じるボタン Kein 07/3/7(水) 22:47 回答
【47321】Re:ユーザーフォームの閉じるボタン Kein 07/3/7(水) 22:49 発言
【47322】Re:ユーザーフォームの閉じるボタン Hiyo 07/3/7(水) 23:09 お礼

34621 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free