此网站为广告印刷行业从业人员提供CDR排版辅助设计技术及Excel订单管理系统开发。
当前位置:Graphhome > 插件资源CDR/Excel > 正文

CDR智能群组学习代码

经过反复实践,今推出新的智能群组写法CQL+ShapeRange
公布的代码未借鉴任何现成源码,均由本人自行编写,您下载可随意使用,但请注明出处。
本人不做任何vba基础知识解答和教学,不承诺为您实现任何功能开发,仅为分享基础通用代码以供vba开发者研究学习用,觉得不好用可以自行修改或购买现成的商业插件。
欢迎您进QQ群:19425907 分享自写插件,本插件仅限在本群分享。需要可至本群下载。


框选群组会记录您框选对象的相对于整个待群组区域的位置,根据您选择对象所在的方位在选取的几个对象中来选择最合适的参考对象,记录好框选框与参考对象之间的相对位置关系。
后续的所有shape都按照这个选择方位来依次判断。
为了便于判断群组,本演示图加了色彩效果,发布的插件已经将此段代码注销。


鉴于自己平时的使用习惯,结合本次群组代码,一并开放了以下功能。
用于文字的合并与打散。当然仅仅限于阵列比较规范的文字组。稍微错乱的文字要想按照顺序结合是牵涉到排序的,
X4的排序相对比较复杂,代码不便放出。分享出来的代码已经够应付大部分应用场景。










shaperange就像是一团面团,能捏出各种花样来,以下的一些经验可能会经常用到:

  • Shapes 是所有真实 Shape的数组或者集合,shapes可以使用 CQL来做出有用的筛选
  • 可以通过ShapeRange.Shapes来获取shapes素组
  • 也可以通过Document.CreateShapeRangeFromArray()来生成shaperange
  •  .Add    和 .AddRange   则可以添加shape到shaperange, Shapes.All 返回的也是shaperange
  • .remove.removeRange则可以移除shape ,但是注意remove 的参数是index ,不是shape
  • Application.CreateShapeRange 可以生成一个新的ShapeRange 。也可以这样生成 Set sth= New ShapeRange
  • 在CQL中单位必须是一个正数!!!
  • 在CQL中当您的变量A小于1的时候,请注意将这个变量Format,例如vba.format (A,"0.0000"),也可以使用直接在数字前补零的方式来处理
  • double数据类型不能直接进行相等比较,您需要以这样的方式来比较两个数据是否相等 abs(A-B)<0.0001,0.0001是容差,根据您的实际情况选取
  • 对shapeRange里面的对象进行群组操作,并不能改变shaperange的总数,群组后的对象不会作为新对象加入shaperange,这是shaperange与shapes之间的巨大区别
  • For Each shape  In shaperange循环中的shaperange源数据,无论在过程中怎么被改变,删除或减少或合并,shape变量都会在初始shaperange规模下走一遍
  • 当您的处理对象是选区时,要注意避免未被选中的对像对处理结果造成干扰。特别是需要使用SelectShapesFromRectangle函数时尤其重要。


以下代码是原始写法,通过坐标运算来实现群组
本代码核心部分来源于网络论坛,经过本人修改后可实现包含群组,相交群组,框选群组三种群组模式。
很多功能是插件开发界众神不愿公布的东西,照葫芦画瓢自己写,开源免费提供下载:智能群组学习代码

包含群组:所有群组对象中,在给定容差范围内,必有一个对象是包含其它对象的群组模式
相交群组:所有群组对象中,在给定容差范围内,只要相互搭接,便群组
框选群组:先选定群组对象范围,未选定则默认当前页面所有对象;然后框选模板对象,根据模板对象之间的最大容差以及框选尺寸限定大小来群组


上述功能都是大神们已经实现的功能,或许大神的思路并非与本例代码相同,此例公布出来供学习之用。

版权保护: 本文由Graphhome原创,转载请保留链接: www.graphhome.com/html/22.html

小站主人Graphhome
博主印刷技术专业。熟悉印前技术、CTP制版流程。混迹图文广告行业多年,工作之余为提高工作效率,通过VB语言将coreldraw与Myexcel管理软件集成,搭建了订单管理系统,实现了工作数据一体化管理。站内免费开源地分享了博主作品格辅图攻graphhome软件和部分插件或技术,祝您工作顺利、生活幸福 ̄︶ ̄
  • 文章总数
  • 10122访问次数
  • 建站天数
  • Graphhome排版管理系统CDR

    标签