If s1 = False Then
    Shape1(0).FillColor = vbGreen
Else: Shape1(0).FillColor = vbRed
End IfIf s2 = False Then
    Shape1(1).FillColor = vbGreen
Else: Shape1(1).FillColor = vbRed
End IfIf s3 = False Then
    Shape1(2).FillColor = vbGreen
Else: Shape1(2).FillColor = vbRed
End IfIf s4 = False Then
    Shape1(3).FillColor = vbGreen
Else: Shape1(3).FillColor = vbRed
End IfIf s5 = False Then
    Shape1(4).FillColor = vbGreen
Else: Shape1(4).FillColor = vbRed
End IfIf s6 = False Then
    Shape1(5).FillColor = vbGreen
Else: Shape1(5).FillColor = vbRed
End IfIf s7 = False Then
    Shape1(6).FillColor = vbGreen
Else: Shape1(6).FillColor = vbRed
End IfIf s8 = False Then
    Shape1(7).FillColor = vbGreen
Else: Shape1(7).FillColor = vbRed
End IfIf s9 = False Then
    Shape1(8).FillColor = vbGreen
Else: Shape1(8).FillColor = vbRed
End IfIf s10 = False Then
    Shape1(9).FillColor = vbGreen
Else: Shape1(9).FillColor = vbRed
End IfIf s11 = False Then
    Shape1(10).FillColor = vbGreen
Else: Shape1(10).FillColor = vbRed
End IfIf s12 = False Then
    Shape1(11).FillColor = vbGreen
Else: Shape1(11).FillColor = vbRed
End IfIf s13 = False Then
    Shape1(12).FillColor = vbGreen
Else: Shape1(12).FillColor = vbRed
End IfIf s14 = False Then
    Shape1(13).FillColor = vbGreen
Else: Shape1(13).FillColor = vbRed
End IfIf s15 = False Then
    Shape1(14).FillColor = vbGreen
Else: Shape1(14).FillColor = vbRed
End IfIf s16 = False Then
    Shape1(15).FillColor = vbGreen
Else: Shape1(15).FillColor = vbRed
End IfIf s17 = False Then
    Shape1(16).FillColor = vbGreen
Else: Shape1(16).FillColor = vbRed
End IfIf s18 = False Then
    Shape1(17).FillColor = vbGreen
Else: Shape1(17).FillColor = vbRed
End IfIf s19 = False Then
    Shape1(18).FillColor = vbGreen
Else: Shape1(18).FillColor = vbRed
End IfIf s20 = False Then
    Shape1(19).FillColor = vbGreen
Else: Shape1(19).FillColor = vbRed
End If請教各位大俠. 怎樣簡化以上程序?

解决方案 »

  1.   

    dim s(20) as booleanfor i=1 to 20
       If s(i) = False Then
          Shape1(i-1).FillColor = vbGreen
       Else
          Shape1(i-1).FillColor = vbRed
       End If
    next i
      

  2.   

    用数组
    Private Sub Command1_Click()
    Dim s(1 To 20) As Boolean
    For i = 1 To 20
    s(i) = Rnd < 0.5
    Shape1(i - 1).FillStyle = 0
    Shape1(i - 1).FillColor = IIf(Not s(i), vbGreen, vbRed)
    Next
    End SubPrivate Sub Form_Load()
    On Error Resume Next
    For i = 0 To 19
    Load Shape1(i)
    Shape1(i).Visible = True
    Shape1(i).Move 500 * (i Mod 5), 300 * (i \ 5), 500, 300
    Next
    End Sub
      

  3.   

    For i=0 To 19
      tPatch = (vbGreen - vbRed)
      Shape1(i).FillColor = ((Not s(i)) And tPatch) + vbRed
    Next
      

  4.   

    KiteGirl(小仙妹)   COOL! ARE U A GIRL?
      

  5.   

    For i = 0 To 19
      Shape1(i).FillColor = IIf(i Mod 2 = 1, vbGreen, vbRed)
    Next小仙妹的方法弄出来咋变成绿色和黄色去了哦
    现在这个才是黄色
      

  6.   

    Shape1(i).FillColor = IIf(s(i),vbRed,vbGreen)
      

  7.   

    Shape1(i).FillColor = ((Not s(i)) And tPatch) + vbRed如果s(i) = true,算出来是 -256换算成颜色就是 FFFF00 也就是黄色
      

  8.   

    的确是绿和红呀,测试代码在下面:Public tBool As Boolean
    Private Sub Command1_Click()
      tBool = Not tBool
      tPatch = (vbGreen - vbRed)
      Form1.BackColor = ((Not tBool) And tPatch) + vbRed
    End Sub
      

  9.   

    呵呵,小仙妹复杂化了:Shape1(i - 1).FillColor = Choose(s(i)+2, vbRed, vbGreen )