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

パソコン難しい Excel-VBA
スポンサーリンク

こんにちは、とりっぷぼうるです。

元々エクセルとは全く縁のない生活をしていましたが、人員不足などで少しでもデータ入力作業や集計作業を効率化するしか方法が無く、仕方がなくエクセルに取り組み始まました。

なぜならば、大きな会社ならば専用ソフトやクラウド上でデータ集計や管理を行うのでしょうけど、小さなところではそのようなお金もないのでエクセルで解決するしか方法が無いのですよね。

このような理由からエクセルに取り組み始めましたので、当然ながらエクセルの専門知識もなく、学校に通うこともできずにただ単にエクセルの書籍とにらめっこしながら取り組んでいます。

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

でも書籍のままだと実用的でないことが多く、VBAコードを組み合わせてみたら動いた!という実用例・体験談を書いています。

Excel-VBAの専門学校通学や・資格があるわけではありませんので、あくまでエラーにならずに動いてくれているVBAコードになりますので、掲載のVBAコードが同じように動く保証はできません。
実際に動いているエクセルは2009と2016です。

ユーザーフォームの×ボタンを使えなくする

ボウリングのリーグ戦での成績表でも必ず使うユーザーフォーム。

これがあるとボタンひとつで繰り返し作業を自動で行ってくれるので、あっという間にリーグ成績表が出来上がってくれます。

そのユーザーフォームの右上にある✖ボタン。通常押せばユーザーフォームを閉じられますが、プログラムの関係上使われては困ることありませんか

✖ボタンを押されてしまった為に、次の自動作業がストップしてしまったことありませんか

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

押さないように使う人にお願いしています!

そんな時は使えなくしてしまえばいいのです。

この画像のような✖ボタンだよ!

画像

この画像は、「ボウリング成績表印刷設定方法~LTB個人リーグ編」で使用している成績表の一部抜粋です。
ボウリング成績表印刷設定方法~LTB個人リーグ編
エクセルで作成しているボウリングリーグ成績表を自動化で、リーグ戦参加者の成績表を作成・印刷専用フォームの使い方

このユーザーフォームにも右上に✖ボタンありますよね。

この✖ボタンを押されてしまうと、次の項目などがなくなってしまいますので、やむなくシート【HOME】へ移動するしかありません。

ところが、HOMEへ行ってもメインのMENUフォームは現れませんので、保存して終了するしかなくなってしまいます。

必ず【MENU】ボタンを押す必要があるのです。

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

印刷メニュー

✖ボタンが使えなくしたいユーザーフォームをクリックします

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

✖ボタン

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

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

そうすると、ユーザーフォームの✖ボタンが使えなくなり、メッセージで案内します。

ただ、このままだと✖ボタンを押したのと同じなので、15秒後に自動復帰するようにExcel-VBAコードを書き足しています。

Excel-VBA自動復帰

【OK】を押すと(OKしか押せない)15秒間はユーザーフォームが消えて、ボウリングリーグ戦の個人成績一覧が見られるようになっています。

15秒後自動的にユーザーフォームが再表示されます。

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

そんなExcel-VBAでタイマー設定なんてできるの?

また次の授業で教えてあげるね💛

各コントロールまとめて転記シリーズ

ユーザーフォームを使うと配置したコントロール(テキストボックスやラベルなど)とセルとの間で値のやり取りが多くなります。

よく使うのでまとめてみました。

値の場所転記したい場所説明ページ
セルの値ラベル名VBAコード
セルの値テキストボックスの値VBAコード
セルの値コマンドボタンの表示名VBAコード
セルの値セルの値VBAコード
テキストボックス入力値セルの値VBAコード
波乗りアヒル
波乗りアヒル

成績表作成には知っておきたいExcel-VBAもくじ

ボウリングハンデキャップのつけ方
HDCPの種類はリーグのルールにより複雑に ボウリングの成績表(リーグ戦)で必ず必要になるのが、ハンデキャップ(HDCP)です。 ボウリングご予約の時に一番多く使われているのが、女性にだけハンデキャップをつけてあげることが多いですね。 だいだい何点ぐらいのハンデキャップが多いの?
ボウリングリーグ対戦表の数字を名前に自動変換する方法
リーグ戦の対戦表をエクセルで作る時、数字で表されている番号を名前に自動的に変換できると作業時間が短くなり効率的ですね。たった2つのエクセル関数を使うだけで、簡単にできるんです。今回の回戦数を入力するだけで一発変換完了。もちろんお客様にスケジュール対戦表として渡すことも簡単ですよ。
人数に応じてリーグ対戦表を自動選択する方法
複数の表があり、条件に合った表を選んで、さらにセルの値を選んで数字を名前に自動変換できると、とても便利なエクセルができますよね。ボウリングのリーグ対戦表も人数により表が異なるので、参加人数が決まったら、自動的に表を選んで対戦番号がこれも自動的に参加者名に変換されると便利で作業効率がアップして時間短縮になりますよ。
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

コメント