蘭雅sRGB 个人笔记 https://262235.xyz
提供编程和电脑应用视频教程,工具和源代码
C, C++, Python Programming, Source Code, Video

旧Hexo博客 | Github | IP定位WebAPI | Docker Hub
编程中文文档 | 网盘分享 | 中文Linux命令

CorelDRAW VBA 编程学习笔记-剪贴板物件替换脚本

1744532390.webp

先建立一个子程序,开启一个MsgBox对话框,1 2 3 三个分支,太懒了,直接使用 是(Y) 否(N) 取消,不想自己实现对话框,直接用 MsgBox对话框

Sub 剪贴板物件替换()
  xz = MsgBox("使剪贴板上的物件替换选择的目标物件" & vbNewLine & vbNewLine & "点击 是(Y) 直接替换目标" & vbNewLine & _
              "点击 否(N) 调整尺寸和目标一样大小" & vbNewLine & "点击 取消  实际自动图片替换功能!", _
              vbYesNoCancel, "用剪贴板上的物件替换对象")
              
  If xz = vbYes Then
    Call copy_shape_replace
  ElseIf xz = vbNo Then
    Call copy_shape_replace_resize
  ElseIf xz = vbCancel Then
    Call image_replace
  End If
End Sub

源码很简单,这个是直接替换的 copy_shape_replace 分支,其他两个按这个样子,再画2个葫芦就可以了

Private Sub copy_shape_replace()
  ActiveDocument.ReferencePoint = cdrCenter
  Dim sh As Shape, shs As Shapes, cs As Shape
  Dim x As Double, y As Double
  Set shs = ActiveSelection.Shapes
  cnt = 0
  For Each sh In shs
    If cnt = 0 Then
      Set sc = ActiveDocument.ActiveLayer.Paste
      cnt = 1
    Else
      sc.Duplicate 0, 0
    End If
    sh.GetPosition x, y
    sc.SetPosition x, y
    sh.Delete
  Next sh
End Sub
本原创文章自由转载,转载请注明本博来源及网址 | 当前页面:兰雅sRGB个人笔记 » CorelDRAW VBA 编程学习笔记-剪贴板物件替换脚本