首页>工作相关>coreldraw自动排版序列号与边框

coreldraw自动排版序列号与边框

写上一篇博文的时候才真正明白vba中的“moveto”与“activate”的去别,前者是改变当前选择页面的页码,而后者才是将指定页面设置为正在编辑的状态,当页面处于编辑状态时,我们所做的粘贴或生成元素的操作,才会对该页面生效。假设当前页面是第一页,想在第二页生成某个元素,则需要先激活第二页,语句如下:

ActiveDocument.Pages(2).Activate

某个客户经常需要打印一些序列号,格式如下,一直是用excel来制作,拖拽几下就摆弄好了,然后纵向每两个格子加一个边框,方便负责粘贴的工作人员裁剪。excel中的边框只能设置线型,而不能设置边框的长度,所以遇到裁切不准确的,在不干胶的某条边上往往会有一条明显的黑色线条。

coreldraw_automatic_sn_and_border_p1

无奈只能考虑改用coreldraw,先根据序列号的数量向上取整生成足够的页面,同时放置好出血线,然后返回第一页,依次生成序列号与“item no”。每一页放置了10个序列号,超过10个就翻至下一页继续生成,coreldraw的生成速度相对较慢,但是因为可以任意调整线宽与长度,所以裁切出来的贴纸相对更为干净一些。

coreldraw_automatic_sn_and_border_p2

完整程序

之前一直误以为用moveto来翻页,最终所有的序列号都生成在同一页面上,百思不得其解。还是基础太差的原因,偶尔在写上一篇博文时因一个错误的执行发现了这个问题,于是修改了一下这个残缺的自动排版程序,目前已可以达到预期的效果:

Sub serialNo()
    startNo = 2303101
    endNo = 2303110
    itemNo = "ITEM NO.XXX"
    countNo = 0
    TextX = 25
    TextY = 268
    pageNo = -Int(-(endNo - startNo) / 10)
    nextPage = 2
    For h = 1 To pageNo
        For i = 15 To 185 Step 85
            For j = 280 To 20 Step -26
                drawLine i, j
            Next j
        Next i
        If h < pageNo Then
            Set p1 = ActiveDocument.InsertPagesEx(1, False, ActivePage.Index, 8.267717, 11.692913)
        End If
    Next h
    ActiveDocument.Pages(1).Activate
    For k = startNo To endNo
        Set s1 = ActivePage.ActiveLayer.CreateArtisticText(TextX / 25.4, TextY / 25.4, k, , , "arial", 26)
        Set s2 = ActivePage.ActiveLayer.CreateArtisticText((TextX + 85) / 25.4, TextY / 25.4, k, , , "arial", 26)
        Set s3 = ActivePage.ActiveLayer.CreateArtisticText(TextX / 25.4, (TextY - 11) / 25.4, itemNo, , , "arial", 24)
        Set s4 = ActivePage.ActiveLayer.CreateArtisticText((TextX + 85) / 25.4, (TextY - 11) / 25.4, itemNo, , , "arial", 24)
        countNo = countNo + 1
        TextY = TextY - 26
        If countNo Mod 10 = 0 And k < endNo Then
            ActiveDocument.Pages(nextPage).Activate
            nextPage = nextPage + 1
            TextY = 268
        End If
    Next k
End Sub

Function drawLine(x, y)
    Dim mylines As Shape
    StartX = x
    StartY = y
    Set mylines = ActiveLayer.CreateLineSegment(StartX / 25.4, StartY / 25.4, (StartX + 10) / 25.4, StartY / 25.4)
    mylines.Outline.SetProperties 0.01, OutlineStyles(0), CreateCMYKColor(0, 0, 0, 100), ArrowHeads(0), ArrowHeads(0), False, False, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, , , 5#
    Set mylines = ActiveLayer.CreateLineSegment((StartX + 5) / 25.4, (StartY - 5) / 25.4, (StartX + 5) / 25.4, (StartY + 5) / 25.4)
    mylines.Outline.SetProperties 0.01, OutlineStyles(0), CreateCMYKColor(0, 0, 0, 100), ArrowHeads(0), ArrowHeads(0), False, False, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, , , 5#
End Function

文件链接

coreldraw自动序列号边框

标签: office

移动端可扫我直达哦~

推荐阅读

office 2025-04-18

在CorelDRAW VBA中获取当前文件路径

之前写过一个自动导入PDF文件并在CorelDRAW中简单排版后打印的小程序,PDF文件的地址是用的绝对路径,换文件打印的时候就有点不太方便,于是就想改成当前文件所在路径 & 文件名这样的形式,这样后续打印时只需要修改一下需要...

工作相关 office

office 2025-03-25

惊!下载文件时看不到桌面文件夹~

家里的电脑不知何时开始变成了这样,下载保存的时候看不到桌面,保存文件只能选c、d、e、f盘,觉得有点麻烦,但又不觉得麻烦到无法忍受,所以一直拖延至今。你看,不光人心中的成见是一座大山,除了成见山,还有懒惰山拖延山畏难山。解决办法出乎意...

工作相关 office

office 2025-03-25

如何利用ai自动智能生成ppt

需要一个数学三门问题的讲解用ppt,自己对做ppt苦手,最近ai应用又层出不穷,就想着能不能用ai来生成一个。询问了一下deepseek,deepseek摊手表示不会,但也推荐了一个ai小伙伴,kimi。关于kimiKimi是由北京月...

工作相关 office

office 2025-02-25

Excel拆分复杂混合数据表至新表

一个拆分数据表的小案例,将混合表按国别拆分为多张数据表,并做一个简单的汇总工作。虽然代码不长,但最近vba用的不多,很多代码知道实现逻辑,但就是忘记了书写的格式,记录一下测试流程,方便查询。另外,简单功能active控件就能够满足要求...

工作相关 office

office 2025-02-12

Sublime 编辑器的正则替换

Sublime Text编辑器支持使用正则表达式进行文本搜索和替换,这是一个非常强大的功能,可以大大提高文本处理的效率。在Sublime Text中,你可以通过按下Ctrl+H来打开替换对话框,并点击对话框中的[.*]按钮来启用正则表...

工作相关 office

office 2025-02-10

qq的远程控制不好用?试试TeamViewer

qq也有远程控制功能,偶尔也能解个燃眉之急,不过遇到需要较长时间稳定硬控,qq的这个小功能就有点儿心有余而力不足了。这个时候还得让专业的来,博主常用的就是这个叫TeamViewer的软件。官网地址https://www.teamvie...

工作相关 office

office 2025-02-10

关于CAXA中的拟合样条功能

朋友发过来一张加工图,CAD格式的蚊香状的工件,导入到CAXA中是一条闭环的样条曲线,无法直接打散。尝试了一下CAXA中的拟合样条功能,自动重新生成了一个可编辑标注的图形,严丝合缝。查了一下样条拟合的概念,大致是将复杂曲线分为多段,段...

工作相关 office

office 2024-12-31

女职工延迟法定退休年龄对照表

前几天做了一张男职工延迟退休的文字格式的表格,感觉比图片格式看着清楚点,反正格式已经有了,顺手做张女职工的。女职工的退休年龄分为两档,所以就有两张表格,分别是五十岁退休档和五十五岁退休档。女职工的法定退休年龄从原五十周岁、五十五周岁分...

工作相关 office

office 2024-12-29

男职工延迟法定退休年龄对照表

上班忙完,突然想起延迟退休的事情,就顺手查了一下延迟退休的资料,发现在第十四届全国人民代表大会常务委员会第十一次会议上已经决定:同步启动延迟男、女职工的法定退休年龄,用十五年时间,逐步将男职工的法定退休年龄从原六十周岁延迟至六十三周岁...

工作相关 office

office 2024-10-08

WIN7系统如何共享WIN10的打印机

迫于农行网银升级的压力,给单位的财务电脑升级到了win10,重装后考虑到可能需要打印机共享,所以提前设置了相同的工作组,以便同工作组内的设备相互识别,当然装完系统后也设置好了打印机共享。但是同办公室的win7倒也是识别到了同组中的wi...

工作相关 office

office 2024-07-26

如何将证件照的蓝底修改为白底

想给孩子报名参加csp-j入门组的比赛,体验一下比赛的流程与难度,报名需要提交一张白底的照片,但手头上的照片是蓝色背景的。用ps的魔棒工具直接选取之后,衣服部分的效果尚可,但发丝部位还是有蓝色残留,效果比较粗糙。有过ps的使用经验(但...

工作相关 office