excelvba录入实例(VBA实例教程-形状转动)

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. 图形准备及激活方式确定

  • 图形准备:如下图,在“插入”选项卡中点选“形状”,并在其中选择自己喜欢的项目,本教程选择“太阳形”

excelvba录入实例(VBA实例教程-形状转动)(1)

将左上方名称框中的默认“太阳形 1”更名为“shpSun”(如下图红色圈),并在形状格式选项卡中调整形状的填充及轮廓颜色(下图红色框),本例填充色选红色,轮廓选黄色,最后拖动形状的边沿选框调整其尺寸大小至满意状态(注:按住shift拖动可等比放大)。

excelvba录入实例(VBA实例教程-形状转动)(2)

最终形状调整完毕后状态如下(左侧为原图形,右侧为调整后图形):

excelvba录入实例(VBA实例教程-形状转动)(3)

  • 程序激活方式:设定当点击A1单元格时,形状顺时针旋转;点击B1单元格时,形状逆时针旋转;点击A2单元格时,停止旋转。并在此三个单元格分别输入“正转”、“反转”及“停止”。字体及颜色依个人喜好调整。

excelvba录入实例(VBA实例教程-形状转动)(4)

Step2. 代码的添加

Alt F11调出VBE界面,①双击左侧当前sheet,在代码区点选②Worksheet及③SelectionChange,并在调出的过程n内外分别添加红色框的声明及代码:

excelvba录入实例(VBA实例教程-形状转动)(5)

代码用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界面,点击三个单元格即可实现形状的正转、反转、停止。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页