Page 327 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼UserForm_QueryClose関連 123 02/11/11(月) 15:55 ┗Re:UserForm_QueryClose関連 ichinose 02/11/11(月) 16:36 ┗Re:UserForm_QueryClose関連 Jaka 02/11/11(月) 16:42 ┣よくみたら..。 Jaka 02/11/11(月) 17:12 ┗Re:UserForm_QueryClose関連 123 02/11/11(月) 17:30 ┗Re:UserForm_QueryClose関連 ichinose 02/11/11(月) 18:11 ┗Re:UserForm_QueryClose関連 123 02/11/11(月) 18:33 ─────────────────────────────────────── ■題名 : UserForm_QueryClose関連 ■名前 : 123 ■日付 : 02/11/11(月) 15:55 -------------------------------------------------------------------------
またまた 教えてください。 下記コードで、ユーザーフォームの「×(右上の閉じる)」を無効にしています。 当然「×」を押しても何も起きませんが、 押した特に、メッセージを表示させたいのです。 (または、マウスを重ねるとメッセージを表示させたいのです。) どのようにしたらよいでしょうか。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Cancel = True End Sub |
▼123 さん: こんにちは。 >またまた 教えてください。 > >下記コードで、ユーザーフォームの「×(右上の閉じる)」を無効にしています。 >当然「×」を押しても何も起きませんが、 >押した特に、メッセージを表示させたいのです。 >(または、マウスを重ねるとメッセージを表示させたいのです。) >どのようにしたらよいでしょうか。 簡単に押したときにエラーメッセージです。 '================================= Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then MsgBox "このボタンで終了はできません" Cancel = True Else Cancel = 0 End If End Sub |
ichinose さん、123 さん こんにちは。 横レス失礼します。 別解です。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode <> vbFormCode Then MsgBox "ボタンを押して終了してください。" Cancel = True Else Cancel = False End If End Sub Private Sub CommandButton1_Click() Unload Me End Sub >(または、マウスを重ねるとメッセージを表示させたいのです。) 私には、解りません。 |
よくみたらぜんぜん別解じゃなかった。 どうもすみません。 また、お笑い芸人になってしまいました。 |
▼ichinose さん、Jaka さん こんにちは。 いつもいつも ありがとうございます。 御二方のご回答の違いも知ることができ、 勉強になりました。 ありがとうございました。 私は、最初 If コマンドボタン1_click then と書いて、(当然)エラーになりました。 (↑基本を全く分かっていない) CloseMode が「0」の場合は、全てのユーザーフォームが 閉じれなくなるようですが、この「0」とは、どういう場合(意味)なのでしょうか。 また、jakaさんに書かれている <>vbFormCode とは、 ユーザーフォームのオブジェクト以外を押した場合のようですが、 CloseMode が vbFormCode ではない場合、 vbFormCodeと記述しただけで、 「ユーザーフォームのオブジェクトを押した場合」という意味になるのでしょうか。 つまらない質問ですが、お願いします。 |
▼123 さん: >CloseMode が「0」の場合は、全てのユーザーフォームが >閉じれなくなるようですが、この「0」とは、どういう場合(意味)なのでしょうか。 > >また、jakaさんに書かれている <>vbFormCode とは、 >ユーザーフォームのオブジェクト以外を押した場合のようですが、 >CloseMode が vbFormCode ではない場合、 >vbFormCodeと記述しただけで、 >「ユーザーフォームのオブジェクトを押した場合」という意味になるのでしょうか。 こんばんは。Helpのコピーです。 *********************************************************************** cancel 整数値を指定します。この引数に 0 以外の値を設定すると、読み込まれているすべてのユーザー フォームの QueryClose イベントを停止し、ユーザー フォームとアプリケーションを閉じないようにします。 closemode QueryClose イベントの発生理由を表す値または定数です。 戻り値 引数 closemode は、次の値を返します。 定数 値 内容 vbFormControlMenu 0 ユーザー フォームのコントロール メニューの [閉じる] がクリックされました。 vbFormCode 1 コードから Unload ステートメントが実行されました。 vbAppWindows 2 現在の Windows のオペレーティング環境セッションが終了しました。(Visual Basic のみ) vbAppTaskManager 3 Windows のタスク マネージャによって、アプリケーションが閉じられました。(Visual Basic のみ) |
▼ichinose さん: ありがとうございました。 すっごく わかりました。 ちなみに以下は、Unloadじゃなくて Me.Hide でも有効なんですよね。 (実際に有効でした。) >vbFormCode 1 コードから Unload ステートメントが実行されました。 |