Como ajustar a escala do eixo de um gráfico em VBA

Gráficos são excelentes ferramentas para análise de dados, eles fornecem uma excepcional visão qualitativa de um fenômeno a ser estudado. Algumas vezes, porém, temos que ajustar a escala do gráfico para que possamos observar o trecho que nos interessa, nada que não se possa fazer configurando os valores mínimo e máximo dos eixos, mas e se houvesse uma maneira mais rápida de fazer isso?

Essa maneira mais rápida existe e pode ser feita com auxílio do VBA. Para exemplificar vamos apresentar um exemplo semelhante ao que apresentamos em nosso curso de VBA para Excel (http://www.mprinformatica.com.br/vbaexcel2007.html). Considere um gráfico, chamado “Gráfico 1” que está dentro da planilha “Plan1”. Ele representa uma função de segundo grau, a famosa parábola (y=ax2 + bx + c) , cujos coeficientes a, b e c estão nas células A5, B5 e C5 respectivamente. Os pontos da função estão no intervalo B7:V8. Veja a figura abaixo:

Observe como está a fórmula na célula B8, que depois foi copiada para as outras células na linha 8. Note que também já foram inseridos três botões. Foram inseridos pela guia Desenvolvedor (se ela não estiver aparecendo Clique no botão do Office, Opções do Excel, Mais Usados e ative o item Mostrar guia Desenvolvedor na faixa de Opções), Inserir / Botão de Comando (ActiveX).

Botão da esquerda: (Name) = cmdMenos ; Caption = < Botão do meio: (Name) = cmdAutomático ; Caption = Automático Botão da esquerda: (Name) = cmdMais ; Caption = >

Enquanto estiver criando os códigos, mantenha o Modo de Design ativado na guia Desenvolvedor.

Mostrarei o código para o botão cmdMenos, realiza um Zoom na escala do eixo X. Para os demais botões o código é semelhante e pode ser obtido fazendo download do arquivo (clique aqui para download). Estando no Modo de Design, dê um clique duplo no botão da esquerda para editar o código VBA.

‘Reduz a distância entre o máximo e o mínimo pela metade
Private Sub cmdMenos_Click()
Dim Grafico As ChartObject
Dim EixoX As Axis
Dim Delta As Double

‘ Variável que aponta para o Gráfico 1. Selecione o gráfico e verifique o nome do seu objeto gráfico na barra de nomes do Excel.
Set Grafico = Plan1.ChartObjects(“Gráfico 1”)
‘ Objeto que aponta para o Eixo horizontal do gráfico
Set EixoX = Grafico.Chart.Axes(xlCategory)
With EixoX
‘A escala do eixo horizontal irá dobrar de tamanho, metade em direção
‘ao mínimo, metade em direção ao máximo
Delta = (.MaximumScale – .MinimumScale) / 2
‘Altera o mínimo
.MinimumScale = .MinimumScale – Delta
‘Altera o máximo
.MaximumScale = .MaximumScale + Delta
End With
‘Libera apontadores para os objetos
Set Grafico = Nothing
Set EixoX = Nothing
End Sub

Ressalto que quando um gráfico está dentro de uma planilha ele é do tipo ChartObject, porém se ele está separado da planilha é do tipo Chart, ou seja a hierarquia de objetos muda.
Façam download do arquivo, experimentem o exemplo e analisem o código VBA.

Carlos César Tanaka
MPR Informática
Cursos de Excel e VBA

6 comentários sobre “Como ajustar a escala do eixo de um gráfico em VBA”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *