重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel 2013 ActiveXのテキストボックスコントロールです。


チェックボックスにチェックを入れると、右のボックスにチェックした日の日付が入るようにしました。


この日付から3日後→6日後→9日後(日付経過によって)によって背景色を変えたいです。


ちなみに〘連絡待ち〙と書いてあるテキストボックスの背景色を変えたいです。

ご回答よろしくお願いします。

「Excel VBA チェックボックスにつ」の質問画像

A 回答 (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
'//
    • good
    • 0

テキストボックスの背景色の変え方を知りたいのかな・・・



 ActiveSheet.TextBox1.BackColor = RGB(255,0,0)

BackColorプロパティにRGBで指定します。
テキストボックスのプロパティ一覧↓
http://msdn.microsoft.com/ja-jp/library/system.w …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!