24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

222 Parte III: Conceitos de Programação

Sub ToggleCalcMode()

Select Case Application.Calculation

Case xlManual

Application.Calculation = xlCalculationAutomatic

MsgBox “Modo de cálculo Automatico”

Case xlAutomatic

Application.Calculation = xlCalculationManual

MsgBox “Modo de cálculo Manual”

End Select

End Sub

É possível adaptar esta técnica para alterar outras configurações

não Booleanas.

Trabalhando com Gráficos

Os gráficos são repletos de objetos diferentes, portanto, manipular

gráficos com VBA pode ser um pouco desafiador. O desafio aumenta

com o Excel 2007, porque a Microsoft resolveu omitir a gravação de

macros em todas as coisas novas e extravagantes de formatação de

gráfico. Felizmente, esse problema sério foi corrigido no Excel 2010.

Eu disparei o Excel 2010, entrei com alguns números em A1:A3 e selecionei

aquela faixa. Depois, liguei o gravador de macro e criei um gráfico

básico de coluna com três pontos de dados. Apaguei a legenda do

gráfico e acrescentei um efeito sombreado às colunas. Eis a macro:

Sub Macro1()

ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Range _

(“‘Sheet1’ !$A$1:$A$3”)

ActiveChart.Legend.Select

Selection.Delete

ActiveSheet.ChartObjects(“Chart 1”).Activate

ActiveChart.SeriesCollection(1).Select

Selection.Format.Shadow.Type = msoShadow21

End Sub

Se você gravar essa macro em Excel 2007, a última declaração (a qual

aplica a sombra) nem ao menos é gerada. Este é apenas um exemplo de

como o Excel 2007 ignora os comandos de formatação de gráfico ao

gravar uma macro.

A propósito, esta macro provavelmente gerará um erro, pois ela faz código

sólido com o nome do gráfico na macro. Quando você roda essa macro, o

gráfico criado não é necessariamente nomeado como Chart 1. Se por acaso

você tiver um gráfico chamado Chart 1, a formatação de sombreado será

aplicada a ele — não ao que a macro criou. Da mesma forma, a faixa de

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!