Views

Histats

Vitrine

VBA Excel Basic - Gráfico - Alterando todas as Fontes de todos os Objetos em todos os Gráficos

VBA Excel Basic - Gráfico - Alterando todas as Fontes de todos os Objetos em todos os Gráficos



No desenvolvimento e implementação de Dashboards sempre precisaremos aproveitar a construção de sets (conjuntos) de gráficos previamente desenvolvidos. Geralmente estes foram feitos por pessoas que, apesar de saberem criar gráficos, desconhecem alguns aspectos importantes da sua manutenção e criação.

Existe um motivo para mantermos todas as fontes dentro de um gráfico sempre como o mesmo tipo. Qual?

Velocidade

Sim, quanto mais fontes diferentes estiverem sendo usadas num gráfico, mais lento este será carregado. E se for um conjunto com diversos gráficos então, isso será multiplicado, isso quando não trouxer transtornos a atualização.

DICA: Mantenha todas as fontes, de todos os objetos dentro de um gráfico, com o mesmo tipo.

Mas ... Como fazemos? Que código devo usar?

Bem, o código abaixo, além de colocar todas as fontes dentro de código, num mesmo tipo, ainda permite colocar os títulos e os valores das séries neles como negrito. Divirta-se!


Sub ChangeAllFontsAllCharts()
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 16/05/2016 - 06:45
    ' Application: Field Force Dashboard Analysis® - © A&A - In Any Place 2016, Inc. Todos os direitos reservados.
    '     Company: © A&A - In Any Place, Inc. Todos os direitos reservados.
    '     Purpose: Change all fonts in all charts in activesheet
    Dim Charts As ChartObject
    Dim chSeries As Series
    Dim nFontName As String
    Let nFontName = "Arial"
    For Each Charts In ActiveSheet.ChartObjects
        Debug.Print "Nome do Gráfico:" & Charts.Name
        Charts.Activate
        ' All chart Fonts.
        With ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font
            Let .Name = nFontName
            'Let .Size = 14
        End With
        ' Title Fonts.
        'Let ActiveChart.ChartTitle.Font.Name = nFontName
        Let ActiveChart.ChartTitle.Font.FontStyle = "Bold"
        ' Series Fonts.
        For Each chSeries In ActiveChart.SeriesCollection
            Debug.Print "Nome da Série:" & ActiveChart.Name
            With chSeries.DataLabels.Font
                'Let .Name = nFontName
                Let .Size = 12
                Let .FontStyle = "Bold"
            End With
        Next
    Next Charts
End Sub
A coleção Charts contém um objeto Chart para cada planilha de gráfico em uma pasta de trabalho. Use Charts (índice), onde índice é o número ou o nome do índice da planilha de gráfico, para retornar um único objeto Chart. O número do índice do gráfico representa a posição da planilha do gráfico na barra da guia da pasta de trabalho. Charts (1) é o primeiro gráfico (mais à esquerda) na pasta de trabalho; Charts (Charts.Count) é o último (mais à direita). Todas as planilhas de gráfico estão incluídas na contagem do índice, mesmo se estiverem ocultas. O nome da planilha de gráfica é mostrado na guia da pasta de trabalho para o gráfico. Use a propriedade Name para definir ou retornar o nome do gráfico.

O objeto Chart também é membro da coleção Sheets, que contém todas as planilhas na pasta de trabalho (planilhas de gráfico e planilhas). Use Sheets (índice), onde índice é o número ou o nome do índice da planilha, para retornar uma única planilha.

Quando um gráfico estiver no objeto ativo, poderá usar a propriedade ActiveChart para fazer referência a ele. Uma planilha de gráfico será ativa se o usuário a tiver selecionado ou se ela tiver sido ativada com o método Activate do objeto Chart ou com o método Activate do objeto ChartObject. 

Um gráfico interno será ativo caso o usuário o tenha selecionado ou se o objeto ChartObject no qual ele está contido tiver sido ativado com o método Activate.

O uso da propriedade ActiveChart permite que você escreva código do Visual Basic que possa fazer referência a um gráfico interno ou a uma planilha de gráfico (o que estiver ativo).


Quando uma planilha de gráfico estiver na planilha ativa, você poderá usar a propriedade ActiveSheet para fazer referência a ela.

MSDN SAMPLES



LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...