CorelDRAW原生支持VBA,这让它的扩展性获得了极大的提升,用户可以通过VBA编程,实现一些有针对性的自动化操作,这些程序以实现功能为目的,往往短小精悍,却能有效节省使用者的时间,提高工作的效率。本文介绍了一种通过VBA程序读取txt文件,并自动生成表格的方法。
CorelDRAW读取txt文件
首先我们需要准备一个txt文档,由于VBA读取txt文档时以逐行的方式读取,所以对文档的格式有明确的要求,单个表格内容为一行,本例中表格的数量为6行,每行分为6个单元格。需要注意的是文本文档末尾不要有多余的空格或者空行。内容输入完成后保存文件,记住文件名,在本例中,文档被命名为“table.txt”。文档部分的工作到此结束。接下来在文本文档所在文件夹新建一个coreldraw文件,文件名任意,txt文档由于是被读取对象,所以需要一个确定的名字以供查找。双击打开coreldraw文件,依次点击菜单:工具>Visual Basic>Visual Basic编辑器;也可以使用快捷键,快捷键为:Alt+F11;如果此时提示错误,那么全文完,原因可能是由于用户安装了精简版的软件。在弹出的VBA编辑窗口的左侧菜单栏下方工程栏中找到“ThisDocument”并双击,右侧会显示空白的当前页面可编程区域,然后将以下代码复制进编程区域:
Sub readTxt()
Dim cellWidth As Double
Dim cellHeight As Double
Dim cellcenterX As Double
Dim tabletopY As Double
Dim cellcenterY As Double
Dim countNum As Integer
Dim tableRow As Integer
Dim filename As String
Dim id As String
Dim font As String
Dim s1 As Shape
cellWidth = 30 / 25.4 '宽度
cellHeight = 12 / 25.4 '高度
tableRow = 6 '行数
font = "宋体" '字体
cellcenterX = 0 / 25.4
tabletopY = 200 / 25.4
cellcenterY = tabletopY
countNum = 0
filename = "table.txt"
Open filename For Input As #1
Do While Not EOF(1)
On Error GoTo myErr
Input #1, id
Set s1 = ActiveLayer.CreateArtisticText(cellcenterX, cellcenterY, id, , , font, 12)
drawRect cellWidth, cellHeight, cellcenterX, cellcenterY
cellcenterY = cellcenterY - cellHeight
countNum = countNum + 1
If countNum Mod tableRow = 0 Then
cellcenterY = tabletopY
cellcenterX = cellcenterX + cellWidth
End If
Loop
Close #1
MsgBox ("DONE!")
Exit Sub
myErr:
Close #1
MsgBox "文件读取异常,已关闭,请检查表格是否完整!"
End Sub
Sub drawRect(w, h, x, y)
ActiveLayer.CreateRectangle x - w / 2, y + h / 2, x + w / 2, y - h / 2
End Sub</code></pre>
复制完成后点击代码试运行,程序会自动读取先前保存的txt文档并将其制成表格,完成后弹窗提醒。可根据实际需要修改表格的行数,表格的宽、高,以及字体,列数是根据表格内容长短自动变更,故不需要修改。
CorelDRAW读取txt示例
CorelDRAW读取txt并制表示例文件 提取码: 9tb9