2010年11月11日

UserFormsオブジェクト8.CommandButton

コマンドボタンコントロール[ CommandButton* ]

 ダイアログボックスやインプットボックス、ユーザーフォームなどに欠かせないのはコマンドボタンコントロールです。フォームを閉じたり、処理を選択するのに使います。ユーザーは、例えば「決定!」の意思を込めて、[ CommandButton* ]を押します。チェックボックスコントロールの使用例とした「布石」も、[ Enableプロパティ ]を使って、条件が整っていない間は押せないコマンドボタンにしておく事が出来ます。

  • [ CheckBox1 ]を選択すると、[ CommandButton1 ]が、押せるようになる
    Private Sub CheckBox1_Click()
      CommandButton1.Enabled = CheckBox1.Value
    End Sub
     
    予め、[ CommandButton1 ]の[ Enableプロパティ ]に、[ False(偽) ]を設定しておきます。まれに、チェックボックスの[ Valueプロパティ ]を変数に代入してから、他のコントロールで使っているVBAマクロを見ますが、直接、[ CheckBox1 ]の[ Valueプロパティ ]を[ CommandButton* ]の[ Enableプロパティ ]に設定したほうが早いです。
     
    ユーザーフォームを表示すると、表示位置を意図的に変更しなければ、ユーザーフォームの右上端には、閉じるボタン[X]が表示されます。後処理や、用意した[ CommandButton1 ](終了)ボタンの操作以外で、終了すると不都合な場合もあります。必要なVBAマクロでは、このボタンを
     
  • ユーザーフォームの右上端にある閉じるボタン[X]を押すと、[ CommandButton1 ]を点滅させて、右上端にある閉じるボタン[X]では終了しないようにする
     
    Private Declare Function GetTickCount Lib "kernel32" () As Long
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
      If CloseMode = vbFormControlMenu Then
        Cancel = True
        MsgBox "終了ボタンを使ってください。", vbCritical, "操作方法"
        CommandButton1_Blink
      End If
    End Sub
     
    Private Sub CommandButton1_Blink()
      Dim IN_cnt As Long, DN_cnt As Integer, Flg_pw As Boolean
      DN_cnt = 10: Flg_pw = True
      Do While Flg_pw = True
        If CommandButton1.BackColor = &H8000000F Then
          CommandButton1.BackColor = RGB(255, 255, 0)
        Else
          CommandButton1.BackColor = &H8000000F
        End If
        IN_cnt = GetTickCount
        DN_cnt = DN_cnt - 1
        If DN_cnt <= 0 Then Flg_pw = False: Exit Do
        Do While Flg_pw = True
          DoEvents
          If GetTickCount - IN_cnt >= 200 Then Exit Do
        Loop
      Loop
      CommandButton1.BackColor = &H8000000F
    End Sub
posted by くきお at 11:11| Comment(0) | UserFormオブジェクト | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。