こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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


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


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


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

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

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2014-03-26 23:22:47

QNo.8530260

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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
'//

投稿日時 - 2014-03-28 19:23:47

ANo.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

投稿日時 - 2014-03-28 12:26:24

あなたにオススメの質問