摘要:其中使用DoEvents函數轉讓控制權,否則達不到預計的視覺效果。VBA過程代碼236:利用VBA代碼實現圖片在工作表中移動、旋轉。

大家好,世界各地,疫情施虐。疫情過後會是什麼?對於後疫情時代大家很難預測,或許是供應鏈的斷裂,經濟下行的壓力加大,但可以肯定的是會催生新的經濟增長點。在今後更加嚴峻的存量殘殺世界中,對於我們每個人,要儘可能多學習有用的知識,爲自己充電。知識的儲備,特別是新知識的儲備是我們爲後疫情時代做的必要準備。

今日繼續和大家分享VBA編程中常用的常用"積木"過程代碼。這些內容大多是我的經驗和記錄,來源於我多年的經驗。今日分享的是NO.236,內容是:

NO. 236:利用VBA代碼實現圖片在工作表中移動、旋轉

VBA過程代碼236:利用VBA代碼實現圖片在工作表中移動、旋轉

Sub Mynz ()

Dim i As Long

Dim j As Long

Dim T As Long

For i = 1 To 180 Step 5

Sheets("120").Shapes(1).Top = Sin(i * (3.14 / 180)) * 100

Sheets("120").Shapes(1).Left = Cos(i * (3.14 / 180)) * 100

Sheets("120").Shapes(1).Fill.ForeColor.RGB = i * 55

For j = 1 To 10

Sheets("120").Shapes(1).IncrementRotation -2

DoEvents

Next

Sheets("120").Shapes(2).Top = Sin(i * (3.14 / 180)) * 100

Sheets("120").Shapes(2).Left = Cos(i * (3.14 / 180)) * 100 + 400

Sheets("120").Shapes(2).Fill.ForeColor.RGB = i * 55

For j = 1 To 10

Sheets("120").Shapes(2).IncrementRotation -2

DoEvents

Next

Sheets("120").Shapes(3).Top = Sin(i * (3.14 / 180)) * 100 + 200

Sheets("120").Shapes(3).Left = Cos(i * (3.14 / 180)) * 100 + 100

Sheets("120").Shapes(3).Fill.ForeColor.RGB = i * 55

For j = 1 To 10

Sheets("120").Shapes(3).IncrementRotation 2

DoEvents

Next

Next

End Sub

代碼解析:Mynz過程實現移動、旋轉工作表中的圖片並不斷改變其填充的前景色。運行Mynz過程,工作表的圖形在自身進行逆時針方向旋轉的同時沿着一個圓形的弧度進行移動,並不斷改變其填充的顏色。通過代碼分別給三個圖形:設置圖片的Top屬性值,設置圖片的Left屬性值,應用於Shape對象的Left屬性設置圖形從左邊截至 A 列左邊界(在工作表中)或圖表區左邊界(在圖表工作表中)的距離。在循環的過程中使用Cos函數將Left屬性值設置爲一個圓形的弧度值。代碼設置圖片填充的前景色隨着循環的過程不斷的變化。使用Fill屬性返回一個FillFormat對象,FillFormat對象代表圖形的填充格式,其ForeColor 屬性設置對象填充的前景色。其中使用DoEvents函數轉讓控制權,否則達不到預計的視覺效果。

VBA是利用OFFICE實現自己小型辦公自動化的有效手段,我根據自己20多年的VBA實際利用經驗,總結了四部VBA學習資料,是我"積木編程"思想的體現。

第一:VBA代碼解決方案,是VBA中各個知識點的講解,覆蓋了絕大多數的知識點;

第二:VBA數據庫解決方案,是數據處理的專業利器,介紹利用ADO連接ACCDB,EXCEL。

第三:VBA數組與字典解決方案,講解VBA中的數組和字典的利用。

第四:VBA代碼解決方案之視頻,是專門面向初學者的視頻講解,可以快速入門,更快的掌握這門技能。

VBA真的非常實用,希望大家掌握這個工具,利用這個工具,讓自己在工作中輕鬆,高效,快樂。爲後疫情時代做好知識的儲備。

相關文章