VBA中形狀(shape)有Rotation屬性及IncrementRotation方法。連續指定shape的Rotation值或連續讓shape執行IncrementRotation方法則會使shape的角度值持續改變,依此原理可讓shape轉動起來(如上方視頻展示)。
注:1. shape的旋轉中心一般為此shape外接矩形的對稱中心。2. 本例隻展示shapes的IncrementRotation方法。
Step0. 預備知識
Rotation表示對應shape當前角度值,比如shape("myShape").Rotation=90表示名為"myShape"的shape當前的角度值被設置為90°; Msgbox shape("myShape").Rotation則表示要用彈窗顯示名為"myShape"的shape當前的角度值。
IncrementRotation會讓對應的shape對象轉動某個角度值,比如shape("myShape").IncrementRotation 10則表示名為"myShape"的shape将會被順時針旋轉10°(負值則逆時針轉動)。
Step1. 圖形準備及激活方式确定
将左上方名稱框中的默認“太陽形 1”更名為“shpSun”(如下圖紅色圈),并在形狀格式選項卡中調整形狀的填充及輪廓顔色(下圖紅色框),本例填充色選紅色,輪廓選黃色,最後拖動形狀的邊沿選框調整其尺寸大小至滿意狀态(注:按住shift拖動可等比放大)。
最終形狀調整完畢後狀态如下(左側為原圖形,右側為調整後圖形):
Step2. 代碼的添加
Alt F11調出VBE界面,①雙擊左側當前sheet,在代碼區點選②Worksheet及③SelectionChange,并在調出的過程n内外分别添加紅色框的聲明及代碼:
代碼用boolean變量f_run來控制shape轉動的開啟和關閉。當點擊A1及B1單元格時,f_run被賦值為true,shape轉動;當點擊A2單元格時,f_run被賦值為false,shape轉動停止。
tFact為轉動因子,默認值設為1代表正轉,當B1被點擊時其值被設為-1轉動反向。轉動正反的具體實現,是在循環中shape角度增加時,以正負因子的方式與所增加角度值相乘(本例角度值為3,可依個人喜好改其他值,值越大轉動越快)。
Sleep為API函數,用來增強視覺效果,其後參數值越大,轉動越慢(兩次轉動間的停頓感越強)。
Step3. 代碼的執行
返回前台sheet界面,點擊三個單元格即可實現形狀的正轉、反轉、停止。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!