在之前的文章中,我們使用XY散點圖繪制了圓形運動軌跡動畫。由于使用的數據是基于工作表中的25個數據,數據量太少,所以運動軌跡看起來并不圓。
本文也是制作圓形運動軌跡動畫,但不使用工作表中的數據,而是使用由定義的名稱所生成的數據。
為了方便繪制,我們使用實用中已經使用的繪圖區作為模板。
首先,定義一些名稱。
名稱:n
引用位置:=200
名稱:ndx
引用位置:=1
名稱:t
引用位置:=(ROW(OFFSET(Sheet1!$A$1,,,n))-1)*(2*PI()/(n-1))
名稱:circle_x
引用位置:=COS((ROW(OFFSET(Sheet1!$A$1,,,50))-1)*(2*PI()/(50-1)))
名稱:circle_y
引用位置:=SIN((ROW(OFFSET(Sheet1!$A$1,,,50))-1)*(2*PI()/(50-1)))
名稱:circle_path_x
引用位置:=COS(t)
名稱:circle_path_y
引用位置:==SIN(t)
名稱:dot_circle_x
引用位置:=INDEX(circle_path_x,ndx)
名稱:dot_circle_y
引用位置:=INDEX(circle_path_y,ndx)
選擇繪圖區,在“圖表工具”選項卡組中選擇“設計”選項卡下的“選擇數據”命令,添加數據系列dot_circle,如圖1所示
圖4
在工作表中插入一個ActiveX控件命令按鈕,將其標題更改為“圓形軌跡運動”,雙擊該按鈕并輸入下面的代碼:
Private i As Long
PrivateblnRunning As Boolean
Private SubCommandButton1_Click()
Dim nm As Names
Dim z As Long
Const DELAY_FACTOR = 125
If CommandButton1.Caption = “圓形軌跡運動” Then
CommandButton1.Caption = “停止運動”
End If
If blnRunning Then
blnRunning = False
CommandButton1.Caption = “圓形軌跡運動”
Exit Sub
End If
blnRunning = True
Application.Cursor = xlNorthwestArrow
Set nm = Application.Names
Do
If blnRunning = False Then Exit Do
i = i + 1
If i > 800 Then i = 1
nm.Add “ndx”, (i Mod [n]) + 1
For z = 1 To DELAY_FACTOR: DoEvents:Next z
Loop