目次
常に特定のユーザーフォームからエクセルを操作
どのユーザーフォームにも右上にある「×」ボタン。
この「×」ボタンを押されてしまうと、当然ながらユーザーフォームが閉じられてしまうので、次の項目などがなくなってしまいますので、やむなくワークシート自体をクリックして、目的のシートやセル移動するしかありません。
ところが、目的のシートやセルへ移動しても表示したいユーザーフォームは現れませんので、保存して終了するしかなくなってしまいます。
必ず特定のコマンドボタンを押す必要があるのです。
そこでこのユーザーフォーム自体に、「×」ボタンが使えないようにする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
解説
- ユーザーフォームが閉じられる直前に実行される
- もしCloseModeがvbFormControlMenu だったら
- メッセージ「【Close】ボタンを使用してください」と表示する
- ユーザーフォームを閉じる処理をキャンセルする
- Ifステートメント終了
- マクロ終了

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


エクセルのメニューリボン(操作パネル)を非表示にする方法
Excel-VBAを組み込んだエクセルファイルを渡して使ってもらうと、エラー表示になったと言われることがあります。 原因は簡単で、エクセル操作をオリジナル入力画面のユ...
あわせて読みたい


エクセルのシート名部分を非表示にする方法
Excel-VBAを組み込んだエクセルファイルを渡して使ってもらうと、エラー表示になったと言われることがあります。 原因は簡単で、エクセル操作をオリジナル入力画面のユ...

波乗りアヒル
Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!