Has anyone figured out a way to have a macro read and change the setting for "Keep Desktop Objects on Layer" which is found on the Objects docker, "Gear"/settings menu? I would love to be able to check and change this using VBA.
If I understand correctly, "Keep Desktop Objects on Layer" is an application preference. As an example, I see in the Windows Registry a key named KeepDesktopObjectsOnLayer under Computer\HKEY_CURRENT_USER\SOFTWARE\Corel\CorelDRAW\23.0\Draw\Application Preferences\VGDoc Pref Settings.
As an aside: I really, really wish that they had made that a document property instead of an application preference.
I think that there is something in the API for checking and changing application preferences. See Application.GetApplicationPreferenceValue method and Application.SetApplicationPreferenceValue method.
I have messed aroud a little bit trying to use those methods for other settings, but never achieved success. If you learn more about using those methods, then please share, as I would love to learn more about them.
Here are a couple of examples of using GetApplicationPreferenceValue.
Sub UsingGetApplicationPreferenceValue() Dim v As Variant v = GetApplicationPreferenceValue("Bitmaps", "PreviewResolution") MsgBox "Bitmap Prevew Resolution: " & v v = GetApplicationPreferenceValue("VBA", "DelayLoadVBA") MsgBox "Delay Load VBA: " & v End Sub
Hope that helps,
-Shelby
Thank you for that, Shelby.
Do you know what one needs to do in order to make that work with the key NudgeOffset in the group Options - General?
Hi Eskimo. Did you ever figure out how to set the Nudge Offset value (nudge distance) using VBA? I would like to be able to include that in a macro if possible.
You can use the same technique to change the nudge value, I have another video with a demonstration
Coreldraw - Bonus630DevToolsBar - Finding using DataSource - Changes Nudge Value- Importing CGSAddon - YouTube