[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザーフォームのコマンドボタンをクリックしたら、ボタン自体の色を変えるかボタンを押したままの状態にし、どのボタンを押したか後でも分かる状態にしたいのですが教えていただけますか??』(初心者)
全てのコマンドボタンに↓のように記述、かな?
Private Sub CommandButton1_Click() Me.CommandButton1.BackColor = vbRed End Sub
なお、ブックを閉じたら情報を保持しません。 再起動後も保持したいなら、状態をセルなどに 記憶させておく必要があります。
高等な技を使えば、呼び出したコマンドボタンを 取得してそのコマンドボタンの色を変える、とい うのも可能らしいのですが、残念ながら分かりま せん。 この場合はコードは一つですむと思います。
フォームのボタンなどでしたら、 Application.Caller が使えます。 (MARBIN)
あっと。 >フォームのボタン 表示→ツールバー→フォーム のことですね。 (MARBIN)
元の色ではなく、白と赤を切り替える、ですが、こんな
かんじになります。
Private Sub CommandButton1_Click()
With Me.CommandButton1
If .BackColor = vbRed Then
.BackColor = RGB(255, 255, 255) '白
Else
.BackColor = vbRed
End If
End With
End Sub
(MARBIN)
こういう方法はどうでっか?
最初にそのコマンドボタンの色を取得しときます。(それぞれのボタンにそれぞれ 色づけしてあるばやい) (弥太郎) Option Base 1とDim colNo...はGeneral Declarationsにコピペします。 要するにそのフォームモジュールのいっちゃん上にという事ですワ。 ただそのボタンが色づけされてない場合は(作成時に)もっと簡単なコードになりま っせぇ。 '--------------------------- Option Base 1 Dim colNo() As Variant
Private Sub UserForm_Initialize()
Dim cntrol As Control
For Each cntrol In Controls
If Left(cntrol.Name, 4) = "Comm" Then
i = i + 1
ReDim Preserve colNo(i)
colNo(i) = Controls("CommandButton" & i).BackColor
End If
Next
End Sub
Private Sub CommandButton1_Click()
With Me.CommandButton1
.BackColor = IIf(.BackColor = colNo(1), 16711680, colNo(1))
End With
End Sub
Private Sub CommandButton2_Click()
With Me.CommandButton2
.BackColor = IIf(.BackColor = colNo(2), 16711935, colNo(2))
End With
End Sub
Private Sub CommandButton3_Click()
With Me.CommandButton3
.BackColor = IIf(.BackColor = colNo(3), 255, colNo(3))
End With
End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.