Так, тинт пантона учитывается. А про замену палитры еще идеи есть ? =)
Можно сделать так.
Получаешь палитру в которую надо перекрасить (я выбрал PANTONE+):
Код:
Set strPals = Application.PaletteManager.GetPalette("PANTONE+ Solid Coated")
palitIdent = strPals.Identifier
Идентификатор нужен дальше для условия.
Перебираешь объекты, у каждого объекта (sH) берешь параметр Color заливки и обводки.
Определяешь является ли он пантоном. Привожу пример для заливки
Код:
If (sH.fill.UniformColor.Type = 1 Or sH.fill.UniformColor.Type = 25) & sH.fill.UniformColor.PaletteIdentifier <> palitIdent Then
Вот тут понадобится параметр идентификатора палитры. Если он уже в нужной палитре, зачем его проверять.
Вычленяешь имя/ номер пантона и отбиваешь его пробелами (это нужно, чтобы нашел пантон 325, а не 3325 ):
Код:
nam = Split(sH.fill.UniformColor.SpotColorName, " ")
midName = " "
For j = 1 To UBound(nam) - 1 ' нулевой элемент это слово pantone, последний элемент это буквы С, CV, CVC -- нам это все не нужно. В цикле потому что REd 032 должен попасть в поиск )).
midName = midName & nam(j) & " "
Next j
Далее ищешь имя/ номер пантона и если находишь соответствие делаешь нужные действия:
Код:
For n = 1 To strPals.Colors.Count
Set tmp = strPals.Colors(n)
If InStr(1, tmp.Name,midName) Then
Всего в палитре "PANTONE+ Solid Coated" 1355 цветов. Перебирать их все для каждого объекта слишком долго.
Подразумеваем, что в макете от силы 5-20 цветов, поэтому процесс можно сильно ускорить.
Создаешь глобальный массив используемых цветов, куда заносишь пантоны, в которые надо переименовать. Пример, это GlobArrPant. И если нашел используемый в макете цвет, то запоминаешь его:
Код:
For n = 1 To strPals.Colors.Count
Set tmp = strPals.Colors(n)
If InStr(1, tmp.Name,midName) Then
' здесь какие-то действия с объектом
ReDim Preserve GlobArrPant(globIndx)
GlobArrPant(globIndx) = Array(tmp.SpotColorName, tmp.SpotColorID, tmp.PaletteIdentifier)' Запоминаешь цвет
globIndx = globIndx + 1
Таким образом, сперва ищешь имя/ номер пантона в своем GlobArrPant, если находишь, то берешь новые параметры цвета из этого же массива. Если не находишь ищешь в массиве палитры и потом добавляешь его в свой GlobArrPant.
В качестве бонуса можно еще создать список пантонов, которым не нашлось аналогов в PANTONE+, и вывести его.