QQ登录

只需一步,快速开始

查看: 122|回复: 3
收起左侧

VB大佬帮我看下创建出来的十字线,不能群组

[复制链接]
累计签到:410 天
连续签到:1 天
发表于 7 天前 | 显示全部楼层 |阅读模式
Sub 中心点创建的十字线()
    Dim s As Shape
    Dim centerX As Double, centerY As Double
    Dim lineLength As Double
    Dim lineWidth As Double
    Dim horizLine As Shape, vertLine As Shape
    ActiveDocument.Unit = CDRMillimeter
    ' 设置参数
    lineLength = 10
    lineWidth = 0.3

    ' 检查是否有选中的对象
    If ActiveSelection.Shapes.Count = 0 Then
        MsgBox "请先选择一个对象", vbExclamation, "错误"
        Exit Sub
    End If

    ' 获取第一个选中对象的中心点
    Set s = ActiveSelection.Shapes(1)
    centerX = s.CenterX
    centerY = s.CenterY

    ' 创建水平线
    Set horizLine = ActiveLayer.CreateLineSegment(centerX - lineLength / 2, centerY, centerX + lineLength / 2, centerY)
    horizLine.Outline.SetPropertiesEx lineWidth,lineLength, OutlineStyles(0), CreateCMYKColor(1, 2, 3, 30), ArrowHeads(0), ArrowHeads(0), cdrFalse, cdrFalse, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, MiterLimit:=5#, Justification:=cdrOutlineJustificationMiddle

    ' 创建垂直线
    Set vertLine = ActiveLayer.CreateLineSegment(centerX, centerY - lineLength / 2, centerX, centerY + lineLength / 2)
    vertLine.Outline.SetPropertiesEx lineWidth, lineLength , OutlineStyles(0), CreateCMYKColor(1, 2, 3, 100), ArrowHeads(0), ArrowHeads(0), cdrFalse, cdrFalse, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, MiterLimit:=5#, Justification:=cdrOutlineJustificationMiddle


    ' 将新创建的十字线组合
    ActiveSelection.Shapes.All.CreateGroup


End Sub

华印网相关搜索

累计签到:410 天
连续签到:1 天
 楼主| 发表于 7 天前 | 显示全部楼层
' 将新创建的十字线组合
    ActiveSelection.Shapes.All.CreateGroupVB大佬帮我看下创建出来的十字线,不能群组{tag}(1)     是不是要创建选择,还是要移到活跃层到才行?
回复 支持 反对 送花

使用道具 举报

累计签到:7 天
连续签到:1 天
发表于 6 天前 | 显示全部楼层
你创建了形状,也没选中啊,默认选中的是最新创建的那一个,前一个就取消选择了。
直接添加到ShapeRange,然后群组试试,不行的话,至少先同时选中,然后再群组吧。
1 赠人玫瑰,手有余香!如单纯感谢,请送花!凡是以文字形式感谢,即被视为水帖,会扣币处理! 鲜花榜单
  • +1

    对你表示感谢!

回复 支持 反对 送花

使用道具 举报

累计签到:7 天
连续签到:1 天
发表于 6 天前 | 显示全部楼层
' 将新创建的十字线组合
    ActiveSelection.Shapes.All.CreateGroup

改成:  
    horizLine.Selected = True       '刚创建的垂直线本身已经是选择的了。现在把水平线再选择   
    ActiveSelectionRange.Group   ' 把选择范围都组合,将新创建的十字线组合
1 赠人玫瑰,手有余香!如单纯感谢,请送花!凡是以文字形式感谢,即被视为水帖,会扣币处理! 鲜花榜单
  • +1

    对你表示感谢!

回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

注意注意注意:必看上一条 /1 下一条

华印网 - 华印社区
Share More 周一至周日:09:00 - 21:00
华印网旗下的设计印刷制作类专业技术站点
请勿发布违反国家法律法规的内容,会员观点不代表本站立场
企鹅群号:119572101

华印网汇集印前印后技术、PDF拼版、防伪包装、数码印刷、合版印刷、图文设计、平面设计、数码印刷及CTP等最新印刷技术,提供软件汉化、插件汉化、cdr插件、ai插件、ps插件、pdf插件、印刷流程、ctp输出、印刷软件、印能捷、esko、CorelDRAW、InDesign、Illustrator、CTP、CDR以及PDF软件下载的综合性印刷论坛社区!

Powered by Discuz! X3.4 © 2001-2021,Tencent Cloud.

站点地图|小黑屋|手机版|Archiver|华印 ( 粤ICP备19020152号-1 )

GMT+8, 2025-4-30 20:56 , Processed in 0.065346 second(s), 21 queries , Gzip On, Yac On.

快速回复 返回顶部 返回列表