Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
andreasasenterp
Partner - Contributor II
Partner - Contributor II

Изменение цвета ярлыка с помощью VB макроса.

     Изменение цвета ярлыка активного листа это дополнительная навигация, которая дает ощущение большей интерактивности при работе с приложением. Отчет с "юзер френдли" интерфейсом это признак мастерства разработчика

     Изменять цвет можно без использования макроса, но недостаток этого способа в том, что нужно ссылаться на идентификаторы листов. Использование макроса же лишено этого недостатка.

     Давайте перейдем к коду:

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.

2 Replies
Not applicable

А можно применить к отчету тему, где ярлыки листов будут раскрашены по вашим правилам

<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>

andreasasenterp
Partner - Contributor II
Partner - Contributor II
Author

Приветствую.

Немного не понял вопроса.

Макрос будет работать во всем приложении независимо от примененной темы.