If the colors have to be changed or adjusted by levels, this can be done with a Key-in, maintaining the levels to be processed separately. For example, a lump sum at all levels with a color setting x can be changed to the value y.
As an example, I have created this VBA routine with two color values (old and new) that must be passed as a parameter to the VBA routine.
If the VBA routine is loaded with the following Key in, it can be carried out at all levels with color 0 to the color 3 change:
VBA run levelColorFromto 0 3
Option Base 0
Dim oLv As Level
Dim l() As String
l = Split(KeyinArguments, " ")
If UBound(l) <> 1 Then
MsgBox "Call with 2 parameters: old color value + new color value"
For Each oLv In ActiveDesignFile.Levels
If Not oLv.IsFromLevelLibrary Then
If oLv.ElementColor = Val(l(0)) Then oLv.ElementColor = Val(l(1))