過去ログ

                                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
 ───────────────────────────────────────  ■題名 : Re:UserForm_QueryClose関連  ■名前 : ichinose  ■日付 : 02/11/11(月) 16:36  -------------------------------------------------------------------------
   ▼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
 ───────────────────────────────────────  ■題名 : Re:UserForm_QueryClose関連  ■名前 : Jaka  ■日付 : 02/11/11(月) 16:42  -------------------------------------------------------------------------
   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

>(または、マウスを重ねるとメッセージを表示させたいのです。)
私には、解りません。
 ───────────────────────────────────────  ■題名 : よくみたら..。  ■名前 : Jaka  ■日付 : 02/11/11(月) 17:12  -------------------------------------------------------------------------
   よくみたらぜんぜん別解じゃなかった。
どうもすみません。
また、お笑い芸人になってしまいました。
 ───────────────────────────────────────  ■題名 : Re:UserForm_QueryClose関連  ■名前 : 123  ■日付 : 02/11/11(月) 17:30  -------------------------------------------------------------------------
   ▼ichinose さん、Jaka さん こんにちは。

いつもいつも ありがとうございます。

御二方のご回答の違いも知ることができ、
勉強になりました。
ありがとうございました。

私は、最初 If コマンドボタン1_click then と書いて、(当然)エラーになりました。
(↑基本を全く分かっていない)


CloseMode が「0」の場合は、全てのユーザーフォームが
閉じれなくなるようですが、この「0」とは、どういう場合(意味)なのでしょうか。

また、jakaさんに書かれている <>vbFormCode とは、
ユーザーフォームのオブジェクト以外を押した場合のようですが、
CloseMode が vbFormCode ではない場合、
vbFormCodeと記述しただけで、
「ユーザーフォームのオブジェクトを押した場合」という意味になるのでしょうか。

つまらない質問ですが、お願いします。
 ───────────────────────────────────────  ■題名 : Re:UserForm_QueryClose関連  ■名前 : ichinose  ■日付 : 02/11/11(月) 18:11  -------------------------------------------------------------------------
   ▼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 のみ)
 ───────────────────────────────────────  ■題名 : Re:UserForm_QueryClose関連  ■名前 : 123  ■日付 : 02/11/11(月) 18:33  -------------------------------------------------------------------------
   ▼ichinose さん:

ありがとうございました。
すっごく わかりました。

ちなみに以下は、Unloadじゃなくて Me.Hide でも有効なんですよね。
(実際に有効でした。)

>vbFormCode 1  コードから Unload ステートメントが実行されました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 327