版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
最近画了个节点超过100的流程图,节点关系超过10个的情况非常多,许多连接符在路径、线型和颜色方面多次重合和重复。包括作者在内,基本上不愿意分辨清楚流程节点之间的细节关联,杜绝了追溯和梳理全局流程关系的可能。
所以,为了方便自己,也同时方便他人,有必要做一个可以凸显流程路径的自定义功能来强调关系,增强用户阅读体验。在测试了多种Excel图形默认显示效果之后,最终确定基于“发光”特效的宏最符合需求。具体步骤如下:
-
绘制复杂流程图。
简单的流程图就没必要专门搞特效,当然如果有博取关注的需求就另当别论了。以下流程图是用于教程示例,所以不太复杂:
-
梳理功能需求。
①对于连接符,需要强调起点图形、终点图形以及连接符本身,从而标记完整关系(如图形1与7);
②对于图形元素,需要强调始于和终于图形本身的所有连接符,从而追溯全局关系(如图形Oval 2);
③触发方式为选择图形后使用快捷键触发(原本打算用开关按钮启动宏,但是按钮与连接符的AutoShapeType值相同,会导致属性读取bug)。 -
测试VBA语句。
A 录制宏中发光特效语句是Selection.ShapeRange.Glow,与预设的宏触发方式冲突。所以参考sevenstar在帖子闪烁效果求助的回复,使用避免选中的语句Sheet1.Shapes.Range(Array(“Flowchart: Alternate Process 1”)).Glow
B 连接符的属性AutoShapeType为-2,与其他图形不同,可用做判断条件分别实现功能①和②。另外,连接符的.ConnectorFormat.EndConnectedShape.ZOrderPosition属性可用于获取终点图形的索引号,改为BeginConnectedShape即可取得起点图形索引号。
C 多重选定的图形是