Private Sub Command1_Click()
Static Ts As Integer
Ts = Ts + 1
x = InputBox("請輸入柱狀圖高度(1-19):")
If Val(x) > 20 Or Val(x) <= 0 Then
Ts = Ts - 1
MsgBox "請輸入0-19範圍的數"
Exit Sub
End If
Set newobj = Me.Controls.Add("vb.shape", "shape" & Ts)
With newobj
.Shape = 0
.FillStyle = 5
.Left = 1 + 2 * Ts
.Top = 42 - x * 2
.Height = x * 2
.Width = 1
End With
newobj.Visible = True
End Sub
Private Sub Form_Load()
Me.Height = 9000
Me.Width = 19000
Me.AutoRedraw = True
Show
Me.ScaleHeight = 44 '將窗體的高設定為44份
Me.ScaleWidth = 50 '將窗體的寬設定為50份
'Me.Line.BorderColor = &H0&
Me.Line (2, 2)-(2, 42), &H0& '畫出縱坐標
Me.Line (2, 42)-(48, 42), &H0& '畫出橫坐標
Me.Line (48, 42)-(47.5, 41.5), &H0& '畫出橫坐標上的箭頭
Me.Line (48, 42)-(47.5, 42.5), &H0&
Me.Line (2, 2)-(1.75, 3), &H0& '畫出縱坐標上的箭頭
Me.Line (2, 2)-(2.25, 3), &H0&
Label1(0).Width = 20 '寫出坐標原點
Label1(0).Height = 20
Label1(0).AutoSize = ture
Label1(0).BackStyle = 0
Label1(0).FontItalic = True
Label1(0).FontBold = True
Label1(0).FontSize = 10
Label1(0).ForeColor = &HFF&
Label1(0).Caption = 0
Label1(0).Left = 1.5
Label1(0).Top = 42.5
Label1(0).Visible = True
For i = 1 To 45
Load Label1(i) '用數組的方法動態添加控件(橫坐標示數)
Label1(i).Width = 40
Label1(i).Height = 20
Label1(i).AutoSize = ture
Label1(i).BackStyle = 0
Label1(i).FontItalic = True
Label1(i).FontBold = True
Label1(i).FontSize = 10
Label1(i).ForeColor = &HFF&
Label1(i).Caption = i
Label1(i).Left = 1.5 + i
Label1(i).Top = 42.5
Label1(i).Visible = True
'動態添加控件(橫坐標上的間隔線)
Set newobj = Me.Controls.Add("vb.line", "Line" & i)
With newobj
.BorderStyle = 3
.X1 = i + 2
.X2 = i + 2
.Y1 = 41.8
.Y2 = 42.2
End With
newobj.Visible = True
Next i
For i = 46 To 70
Load Label1(i)
Label1(i).Width = 40
Label1(i).Height = 20
Label1(i).AutoSize = ture
Label1(i).BackStyle = 0
Label1(i).FontItalic = True
Label1(i).FontBold = True
Label1(i).FontSize = 10
Label1(i).ForeColor = &HFF&
Label1(i).Caption = i - 45
Label1(i).Left = 1
Label1(i).Top = (66 - i) * 2
If Val(Label1(i).Caption) < 20 Then Label1(i).Visible = True
Set newobj = Me.Controls.Add("vb.line", "Line" & i)
With newobj
.X1 = 1.9
.X2 = 2.1
.Y1 = 2 * (i - 44)
.Y2 = 2 * (i - 44)
'.BorderStyle = 3
End With
newobj.Visible = True
Next i
End Sub