ユーザーフォームのマクロを簡単に実行できるようにするには?

ユーザーフォームの右上の[×ボタン]を無効にするには?
Question 14.6 Previous Next
いつも大変役に立っています。とてもわかりやすくてうれしいです。 質問なんですが、
ユーザーフォームにボタンなどを作成してマクロを作ったとしても、使うのがしろうとなので、 「Visual Basic Editerを開いてユーザーフォーム選択して実行」 だと、わかりにくいと思うので、 なんとか簡単にユーザーフォームのマクロを実行できるようにしたいんですが・・・
良い方法を教えてください。 (Excel97)
Answer   Copyright (C) 1999.1.22 永井善王
いろいろな方法があると思います。
・ブックを普通に開いてから、メニューバーの「マクロ」から実行できれば良いなら、次のようになります。

1) あらかじめ、ユーザーフォームを表示するための下記のマクロを、標準モジュールに組んでおきます。
        UserForm1.Show
くわしい書き方は、「テキストボックスの値をセルに記入するには?」のページ(下の方)を参考にしてください。 次に例示したダイアログボックスも、そのページのケースを使っています。

2) ブックを開いて「ツール」メニュー「マクロ」-「マクロ」と左クリックすると、下図のようなダイアログが映ります。
マクロのダイアログ

「マクロ名」を選んで[実行ボタン]を押すと、フォームが表示されます。

・関連事項として、ユーザーフォームの右上の[×ボタン]を無効にするマクロがあります。

これは、フォーム上に[OKボタン]や[キャンセルボタン]があるのに、ユーザーがそれを使わずに[×ボタン]を使ってしまうために生じるマクロの誤動作を防ぎます。
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        If CloseMode <> vbFormCode Then     'マクロから閉じられたのではないなら
            Cancel = 1                      'キャンセルする
        End If
    End Sub

・この他にも、フォームの表示位置を指定する「StartUpPosition」や、エクセルシートを映さずにフォームだけを映すなど、「Private Sub UserForm_Initialize()」を使って、いろいろなマクロが組めます。
エクセルのヘルプを参考にして、順に研究してみてください。

 

Excel VBA Macro