|
多少修正しました。
以下のコードにしてみました。
Sub ユーザフォームオープン()
UserForm1.Show
Dim i As Integer
Dim d As Date
Dim c As OLE_COLOR
For i = 1 To 39
' シートiのA1の日付を取得
d = worksheets("i").Range("K1").Value
' 月の差によって分岐
Select Case Abs(DateDiff("m", d, Date))
' 5ヶ月以上
Case Is >= 5
c = vbGreen
' 3ヶ月以上
Case Is >= 3
c = vbYellow
' 1月以上
Case Is >= 1
c = vbBlue
' 1月未満
Case 0
c = vbRed
End Select
' ボタンの色を設定s
UserForm1.Controls("NO," & CStr(i)).BackColor = c ←Meから変更
Next
上記のように書き直した所、インデックスが有効な範囲にありませんと言われました。
今、TODAY関数で試しているからでしょうか?
>i = 2 のとき
>NO12というコマンドボタンの背景を変更します。
>
>・
>・
>・
>i = 39 のとき
>NO139というコマンドボタンの背景を変更します。
>
>ということになりますが、全てのボタンはそのような名前になっていますか?
|
|