[[20180514163625]] 『エクセルのフォームの「x」ボタンの無効化』(初心) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルのフォームの「x」ボタンの無効化』(初心)

こんにちは。

マクロでフォームボタンを設置しているのですが、「x」ボタン(フォームの右上)を押すと、内部のプログラムが実行されてしまいます。

フォームには「はい」「いいえ」的なボタンがあり、「いいえ」を押せば終了するのですが、誤って「x」を押してしまうのを防ぎたい為、質問させていただきました。

右上の「x」を無効化、もしくは非表示するようなことはできますか?

宜しくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


 以下を参考にしてみてくれ。

http://www.moug.net/tech/exvba/0090003.html
(ねむねむ) 2018/05/14(月) 16:47


×を消すより、×を押した場合に正しく動くようにするのがベストと思いますよ。「はい」「いいえ」どちらも選んでいないのだから、処理をキャンセル、というのが筋かと。

お薦めはしませんが、APIで無効化する例なぞ。 Excel2016では試していません。

 Private Declare Function GetActiveWindow Lib "USER32" () As Long
 Private Declare Function GetSystemMenu Lib "USER32" _
    (ByVal hWnd As Long, ByVal bRevert As Long) As Long
 Private Declare Function DeleteMenu Lib "USER32" _
    (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
 Private Const SC_CLOSE = &HF060

 Private Sub UserForm_Activate()
    Dim hWnd As Long
    Dim hMenu As Long

    hWnd = GetActiveWindow()
    hMenu = GetSystemMenu(hWnd, 0)
    Call DeleteMenu(hMenu, SC_CLOSE, 0)
 End Sub
(???) 2018/05/14(月) 17:42

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.