/ Objeto Aplicativo VBA do Excel

Objeto Aplicativo Excel VBA

WorksheetFunction | ScreenUpdating | DisplayAlerts | Cálculo

A mãe de todos os objetos é o próprio Excel. Nós chamamos isso de Objeto de aplicação. O objeto de aplicação dá acesso a muitas opções relacionadas ao Excel.

WorksheetFunction

Você pode usar a propriedade WorksheetFunction em Excel VBA para acessar as funções do Excel.

1. Por exemplo, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Quando você clica no botão de comando na planilha, o Excel VBA calcula a média dos valores na célula A1 e célula A2 e coloca o resultado na célula A3.

WorksheetFunction no Excel VBA

Nota: em vez de Application.WorksheetFunction.Média, simplesmente use WorksheetFunction.Average. Se você observar a barra de fórmulas, poderá ver que a fórmula em si não está inserida na célula A3. Para inserir a própria fórmula na célula A3, use a seguinte linha de código:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

Às vezes, você pode achar útil desativar a atualização da tela (para evitar oscilações) durante a execução do código. Como resultado, seu código será executado mais rapidamente.

1. Por exemplo, coloque um botão de comando em sua planilha e adicione as seguintes linhas de código:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

Quando você clica no botão de comando na planilha, o Excel VBA exibe cada valor uma pequena fração de segundo e isso pode levar algum tempo.

ScreenUpdating

2. Para acelerar o processo, atualize o código da seguinte maneira.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

Como resultado, seu código será executado muito mais rápido e você verá apenas o resultado final (10000).

DisplayAlerts

Você pode instruir o Excel VBA a não exibir alertas durante a execução do código.

1. Por exemplo, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

ActiveWorkbook.Close

Quando você clica no botão de comando na planilha, o Excel VBA fecha o arquivo do Excel e solicita que você salve as alterações feitas.

DisplayAlerts

2. Para instruir o Excel VBA a não exibir esse alerta durante a execução do código, atualize o código da seguinte maneira.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Como resultado, o Excel VBA fecha seu arquivo do Excel, sem solicitar que você salve as alterações feitas. Quaisquer alterações são perdidas.

Cálculo

Por padrão, o cálculo é definido como automático. Como resultado, o Excel recalcula a pasta de trabalho automaticamente sempre que um valor que afeta uma fórmula é alterado. Se sua pasta de trabalho contiver muitas fórmulas complexas, você poderá acelerar a macro definindo o cálculo como manual.

1. Por exemplo, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

Application.Calculation = xlCalculationManual

Quando você clica no botão de comando na planilha, o Excel VBA define o cálculo como manual.

2. Você pode verificar isso clicando em Arquivo, Opções, Fórmulas.

Opções de Cálculo

Agora, quando você altera o valor da célula A1, o valor da célula B1 não é recalculado.

Cálculo manual

Você pode manualmente recalcular a pasta de trabalho pressionando F9.

4. Na maioria das situações, você irá definir o cálculo para automático novamente no final do seu código. Basta adicionar a seguinte linha de código para conseguir isso.

Application.Calculation = xlCalculationAutomatic
Leia também: