【探讨】VBA_GMS 物体处理速度加快方法
本帖最后由 zhangmengqtzm 于 2024-9-30 12:18 编辑做了几个小快捷按钮,工作当中感觉比较常用,也算是提高工作效率吧。但发现有个问题出现了,就是【选区文本】(只选择当前选区内的文本)和【文本之外】(选择当前选区内除文本之外的物件),选择选区内文本这个命令还比较快,基本上能达到秒选。但文本之外命令时目前使用的是排除字体法要排除每一个字体,排除效率太低下。能不能通过VB代码优化也能达到秒选,就像【智能居中】和【全部转黑】达到这样的效率,感觉蘭公子做的CPG插件那样达到秒选的感觉!可惜不会CPG编程,仅会一点VB。哪位大佬把代码优化一下,不胜感谢!
(我原本思路是想着把字体先选出来group群组一下,再排除一下这个group,排除一个组比分别排除肯定快一些,但未能如愿)
ActiveDocument.Unit = cdrMillimeter
Dim OrigSelection As ShapeRange
Set OrigSelection = ActiveSelectionRange
OrigSelection.UngroupEx
OrigSelection.Shapes.FindShapes(Type:=cdrTextShape).RemoveFromSelection
End Sub
还有就是变换字体,小批量还不怎么明显,大批量修改字体时,变换字体的速度也是慢也达不到秒变的效率。
Sub ChangeFontTo(ByVal fontName As String)
Dim sr As Shape
For Each sr In ActiveSelection.Shapes
If sr.Type = cdrTextShape Then
If sr.Text.Selection.Length <> 0 Then
sr.Text.Selection.LanguageID = 2052
sr.Text.Selection.font = fontName
Else
sr.Text.Story.LanguageID = 2052
sr.Text.Story.font = fontName
End If
End If
Next sr
End Sub
换2020以上的版本,代码运行能快一倍。 '// CorelDRAW 窗口刷新优化和关闭
Public Function BeginOpt(Optional ByVal name As String = "Undo")
EventsEnabled = False
ActiveDocument.BeginCommandGroup name
' ActiveDocument.SaveSettings
ActiveDocument.Unit = cdrMillimeter
Optimization = True
' ActiveDocument.PreserveSelection = False
End Function
Public Function EndOpt()
' ActiveDocument.PreserveSelection = True
' ActiveDocument.RestoreSettings
EventsEnabled = True
Optimization = False
EventsEnabled = True
ActiveDocument.ReferencePoint = cdrBottomLeft
Application.Refresh
ActiveDocument.EndCommandGroup
End Function
需要刷新 软件窗口的,可以先关闭刷新,等完成后再操作
API.BeginOpt
把你的功能放这个 优化中间
API.EndOpt landboy 发表于 2024-9-30 18:46
需要刷新 软件窗口的,可以先关闭刷新,等完成后再操作
谢谢蘭老大的指点,非常感谢! 这个是什么插件 landboy 发表于 2024-9-30 18:46
需要刷新 软件窗口的,可以先关闭刷新,等完成后再操作
请教,怎么判断按鼠标左键时是否有同时按Ctrl键? petergh 发表于 2024-9-30 22:21
请教,怎么判断按鼠标左键时是否有同时按Ctrl键?
你可以安装我的 开源插件,开源码,一般是 一个图标三个功能, 左键 右键 按ctrl
其实最多的可以一个按钮 5个功能 landboy 发表于 2024-10-1 20:55
你可以安装我的 开源插件,开源码,一般是 一个图标三个功能, 左键 右键 按ctrl
其实最多的可以一个按钮 ...
我查看了你发的主题贴,开源的只找到这个有关流水号的。https://www.52cnp.com/forum.php?mod=viewthread&tid=20063
可以提供你的开源插件链接吗?
页:
[1]