You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CorelDraw 12(VBA 6.3)批量导出选中组为PNG图片的宏代码报错求助

CorelDraw 12(VBA 6.3)批量导出选中组为PNG图片的宏代码报错求助

你好!我看到你在CorelDraw 12(VBA 6.3)里编写批量导出选中组为PNG的宏时遇到了调试问题,卡在了遍历选中组的代码段上。先帮你梳理下问题细节:

我正在使用Corel Draw 12的VBA 6.3版本,想要把选中的每个组都导出成PNG图片。我已经实现了导出功能,但在这段代码区域出现了调试错误:

' Loops through all groups
For i = 1 To gs.Count
groupname = gs.Shapes(i).Name
gs.Shapes(i).CreateSelection

这段脚本我是参考其他地方的,但原脚本可能是更高版本的VBA,而CorelDraw 12只支持VBA 6.3,我卡在这部分一整晚都没搞明白问题出在哪。

你提供的完整代码如下:

Sub testexport()
    Dim sr As ShapeRange
    Dim group As Shape
    Dim groupname As String, path As String, sfolder As String
    Set gs = ActiveSelectionRange
    Dim i As Long
    Set objFOLDER = Interaction.CreateObject("Scripting.FileSystemObject")
        Set objMAIN_FOLDER = objFOLDER.GetFolder("C:\Users\Computer\Desktop\image")
    ' Loops through all groups
    For i = 1 To gs.Count
        g...

针对CorelDraw 12 VBA 6.3的特性,给你几个可能的修复方向:

  • 显式声明变量类型gs变量没有提前声明类型,在VBA 6.3里建议显式声明,避免变体类型引发的兼容性问题,添加Dim gs As ShapeRange在变量声明段。
  • 替换CreateSelection方法:CorelDraw 12的Shape对象可能不支持CreateSelection,可以改用先清空当前选择再添加目标组到选区的方式:
    ActiveDocument.ClearSelection
    gs.Shapes(i).AddToSelection
    
  • 添加组类型判断:确保遍历的对象确实是组,避免非组形状导致的错误:
    If gs.Shapes(i).Type = cdrGroupShape Then
        ' 这里写导出逻辑
    End If
    

备注:内容来源于stack exchange,提问作者helios mayu

火山引擎 最新活动