QQ登录

只需一步,快速开始

查看: 20959|回复: 16
收起左侧

源码注释_CDR的VB脚本精确替换_更新_完美支持CDRX8的64位版本!

[复制链接]
累计签到:305 天
连续签到:0 天
发表于 2016-6-21 13:03:40 | 显示全部楼层 |阅读模式
本帖最后由 huangyushun 于 2017-9-26 12:59 编辑

源码是群里的兴达给的,听说是前方的老版本源码
严重怀疑前方作者是复制官方案例来用,
搞的太复杂,我小白看不懂,只能折腾了半天修改了一个小小的地方。。。

交流QQ群:159154046


[mw_shl_code=vb,true]
'------------------------------------------------------------------------------
Sub tifan()
Dim n As Long
Dim F As Long, Shift As Long
Dim dup1 As ShapeRange
Dim OrigSelection As ShapeRange
Dim X1 As Double, Y1 As Double
Dim xp As Double, yp As Double
Dim SYw As Double, SYh As Double
ActiveDocument.Unit = CDRMillimeter
'------------------------------------------------------------------------------

'判断选中对象为0就。草他麻痹。不干活
n = ActiveDocument.Selection.Shapes.Count
If n = 0 Then
        MsgBox "亲爱的猪头,请先选择需要替换的对象。", vbCritical
        Exit Sub
End If
'------------------------------------------------------------------------------
POSCun = n 'n是选中对象的数量赋值给
'获取选中对象第一个的宽度跟高度给SYw  SYh变量
ActiveDocument.Selection.Shapes(1).GetSize SYw, SYh
'重定义数组,n是选中对象的数量,2代表二维数组要记录每个对象的宽度跟高度
ReDim POSdata(n, 2)
'------------------------------------------------------------------------------

'循环把选中的每一个对象的宽度跟高度都记录到数组里
For n = 1 To ActiveDocument.Selection.Shapes.Count
ActiveDocument.Selection.Shapes.Item(n).GetPosition X1, Y1
POSdata(n, 1) = X1
POSdata(n, 2) = Y1
Next

'------------------------------------------------------------------------------
'删除选中的所有对象
ActiveDocument.Selection.Delete


'------------------------------------------------------------------------------
'用一个判断循环来判断用户是否选择了对象
Dim linshi As Boolean
Do
        '让用户去选择用什么对象来替换上面刚才记录的并且删除的所有对象
        linshi = ActiveDocument.GetUserArea(xp, yp, xp, yp, Shift, 1, False, cdrCursorExtPick)
        '判断用户是否选中了一个对象
Loop While ActiveDocument.Selection.Shapes.Count = 0

'------------------------------------------------------------------------------
'把用户选中的对象赋值
Set OrigSelection = ActiveSelectionRange

'------------------------------------------------------------------------------
'循环,次数是用户第一次选中对象的数量
For F = 1 To POSCun
'用第二次选中的对象逐个替换第一次选中的对象
Set dup1 = OrigSelection.Duplicate()
dup1.SetPosition POSdata(F, 1), POSdata(F, 2)
Next
'------------------------------------------------------------------------------
End Sub
'------------------------------------------------------------------------------
[/mw_shl_code]

华印网相关搜索

累计签到:110 天
连续签到:1 天
发表于 2016-6-21 16:31:51 | 显示全部楼层
向楼主学习源码注释_CDR的VB脚本精确替换_更新_完美支持CDRX8的64位版本!{tag}(1)
累计签到:110 天
连续签到:1 天
发表于 2016-6-21 16:33:56 | 显示全部楼层
完美perfect
累计签到:158 天
连续签到:1 天
发表于 2016-7-8 20:38:05 | 显示全部楼层
向楼主学习,希望看到更多的源码。
累计签到:640 天
连续签到:1 天
发表于 2016-7-10 13:36:38 | 显示全部楼层
这些都看不懂,能整理想脚本出来吗
累计签到:552 天
连续签到:0 天
发表于 2016-10-29 05:28:03 来自手机 | 显示全部楼层
没用过前方,不知道功能,不过代码很短。
回复 支持 反对 送花

使用道具 举报

累计签到:407 天
连续签到:1 天
发表于 2017-1-4 16:42:00 | 显示全部楼层
有人知道这个怎么用么?源码注释_CDR的VB脚本精确替换_更新_完美支持CDRX8的64位版本!{tag}(2)
回复 支持 反对 送花

使用道具 举报

累计签到:513 天
连续签到:1 天
发表于 2017-1-4 16:55:54 | 显示全部楼层
看不懂啊,亲来的楼主。
回复 支持 反对 送花

使用道具 举报

累计签到:413 天
连续签到:1 天
发表于 2017-1-11 19:30:12 | 显示全部楼层
表示看不懂,只会用,不会做。哈哈。源码注释_CDR的VB脚本精确替换_更新_完美支持CDRX8的64位版本!{tag}(3)
回复 支持 反对 送花

使用道具 举报

累计签到:138 天
连续签到:0 天
发表于 2017-1-17 14:11:00 | 显示全部楼层
看着眼花。但是实用就行。学这个不知道 要多久才学得会。
回复 支持 反对 送花

使用道具 举报

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

本版积分规则

关闭

注意注意注意:必看上一条 /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, 2024-11-15 21:05 , Processed in 0.060507 second(s), 33 queries , Gzip On, Yac On.

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