- 締切済み
Excel VBA チェックボックスについて
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- WindFaller
- ベストアンサー率57% (465/803)
こんばんは。 >この日付から3日後→6日後→9日後(日付経過によって)によって背景色を変えたいです。 >ちなみに[連絡待ち]と書いてあるテキストボックスの背景色を変えたいです。 「連絡待ち」が入っているTextBox という意味でしょうか? 何をイベントにして、色を変えるとか、もう少し、分かるように説明してください。 今は、CheckBox に対するイベントですが、TextBox なら、そちらプロシージャの、 最後の行の 「Call TextBoxesChange」 を移し替えてください。 出された、質問に対して、こちらで、想像して書きます。 CheckBox1 ~5 TextBox1~5 左側 TextBox6~10 右側 '// Private Sub CheckBox1_Click() '入稿 If CheckBox1.Value = True Then TextBox1.Text = Format(Date, "yyyy/mm/dd") Else TextBox1.Text = "" TextBox6.Text = "連絡待ち" End If Call TextBoxesChange End Sub Private Sub CheckBox2_Click() '1校正 If CheckBox2.Value = True Then TextBox2.Text = Format(Date, "yyyy/mm/dd") TextBox7.Text = "済" Else TextBox2.Text = "" TextBox7.Text = "" End If Call TextBoxesChange End Sub 'CheckBox3 ~5 までは省略 '// Sub TextBoxesChange() Dim myDate As Long Dim i As Long Dim j As Long Dim Clr As Long Dim tmp As Variant myDate = 1 For i = 2 To 5 '日付の入っているTextBox を上から順に、1-5とした場合 tmp = ActiveSheet.OLEObjects("TextBox" & i).Object.Text If tmp <> "" Then If myDate < CDate(tmp) Then myDate = CDate(tmp) End If End If Next i j = Date - Val(myDate) Select Case j Case Is >= 9: Clr = vbRed Case Is >= 6: Clr = vbYellow Case Is >= 3: Clr = vbBlue Case Else: Clr = vbWhite End Select TextBox6.BackColor = Clr End Sub '//
- ap_2
- ベストアンサー率64% (70/109)
テキストボックスの背景色の変え方を知りたいのかな・・・ ActiveSheet.TextBox1.BackColor = RGB(255,0,0) BackColorプロパティにRGBで指定します。 テキストボックスのプロパティ一覧↓ http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textbox(v=vs.110).aspx