スポンサーリンク

Excel-VBA「×」ボタンを使ってユーザーフォームを閉じられないようにする

ユーザーフォーム×ボタン停止 Excel-VBA
スポンサーリンク

常に特定のユーザーフォームからエクセルを操作

どのユーザーフォームにも右上にある「×」ボタン。

この「×」ボタンを押されてしまうと、当然ながらユーザーフォームが閉じられてしまうので、次の項目などがなくなってしまいますので、やむなくワークシート自体をクリックして、目的のシートやセル移動するしかありません。

ところが、目的のシートやセルへ移動しても表示したいユーザーフォームは現れませんので、保存して終了するしかなくなってしまいます。

必ず特定のコマンドボタンを押す必要があるのです。

そこでこのユーザーフォーム自体に、「×」ボタンが使えないようにするExcel-VBAコードを書き加えておきます。

波乗りアヒル
波乗りアヒル

それでは「×」ボタンを使えなくするVBAコードを記述しましょう。

まず「×」ボタンが使えなくするユーザーフォームをクリックします。

そうすると、VBAコードを書く場所へ移動します。

×ボタン

このPrivate Sub UserForm_Click()~End Subをすべて消して、下記コードに差し替えます。

VBAコード

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox “【CLOSE】ボタンを使用してください”
Cancel = True
End If
End Sub

解説
  1. ユーザーフォームが閉じられる直前に実行される
  2. もしCloseModeがvbFormControlMenu だったら
  3. メッセージ「【Close】ボタンを使用してください」と表示する
  4. ユーザーフォームを閉じる処理をキャンセルする
  5. Ifステートメント終了
  6. マクロ終了
vbFormControlMenu

このような表示が出るようになり、下の図のように誤ってユーザーフォームを閉じられると、メインMenuユーザーフォームに行けなくなってしまう事を防いでいます。

印刷メニュー
波乗りアヒル
波乗りアヒル

参考までに、意図しない操作を防ぐ防ぐためにエクセルの各種メニューリボンバーを非表示化やシート見出しの非表示化してしまうこともできますよ!

Excel-VBAもくじへ

コメント