• 締切済み

Excel VBA チェックボックスについて

Excel 2013 ActiveXのテキストボックスコントロールです。 チェックボックスにチェックを入れると、右のボックスにチェックした日の日付が入るようにしました。 この日付から3日後→6日後→9日後(日付経過によって)によって背景色を変えたいです。 ちなみに〘連絡待ち〙と書いてあるテキストボックスの背景色を変えたいです。 ご回答よろしくお願いします。

みんなの回答

回答No.2

こんばんは。 >この日付から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)
回答No.1

テキストボックスの背景色の変え方を知りたいのかな・・・  ActiveSheet.TextBox1.BackColor = RGB(255,0,0) BackColorプロパティにRGBで指定します。 テキストボックスのプロパティ一覧↓ http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textbox(v=vs.110).aspx