Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Изменение цвета ярлыка активного листа это дополнительная навигация, которая дает ощущение большей интерактивности при работе с приложением. Отчет с "юзер френдли" интерфейсом это признак мастерства разработчика
Изменять цвет можно без использования макроса, но недостаток этого способа в том, что нужно ссылаться на идентификаторы листов. Использование макроса же лишено этого недостатка.
Давайте перейдем к коду:
sub ChangeColorActive
'Обходим все листы приложения и задаем им "неактивный" цвет
for i=0 to ActiveDocument.NoOfSheets-1
set vSheet = ActiveDocument.GetSheet(i)
set vSheetProp = vSheet.GetProperties
vSheetProp.TabAttr.BgColor.PrimaryCol.Col = RGB(241,238,229)
vSheetProp.TabAttr.FgColor.PrimaryCol.Col = RGB(232,98,32)
vSheetProp.TabAttr.Mode = 2
vSheet.SetProperties vSheetProp
next
'Определяем активный лист и задаем ему "активный" цвет
set vSheet = ActiveDocument.ActiveSheet
set vSheetProp = vSheet.GetProperties
vSheetProp.TabAttr.BgColor.PrimaryCol.Col = RGB(67,117,115)
vSheetProp.TabAttr.FgColor.PrimaryCol.Col = RGB(250,245,120)
vSheetProp.TabAttr.Mode = 2
vSheet.SetProperties vSheetProp
End sub
Далее обозначенный макрос следует прописать в триггерах каждого листа в разделе OnActivateSheet.
А можно применить к отчету тему, где ярлыки листов будут раскрашены по вашим правилам
<TabAttr>
<BgColor>
<PrimaryCol>
<ColorExpr>
<v>RGB(67,117,115)</v>
</ColorExpr>
</PrimaryCol>
<SecondaryCol>
<Col>
<Red>241</Red>
<Green>238</Green>
<Blue>229</Blue>
<Alpha>255</Alpha>
</Col>
</SecondaryCol>
</BgColor>
</TabAttr>
Приветствую.
Немного не понял вопроса.
Макрос будет работать во всем приложении независимо от примененной темы.