Excel e VBA: Funções e Subprocedimentos

Classificado em Matemática

Escrito em em português com um tamanho de 19,01 KB.

1. Qual o resultado da fórmula `=PROCV(57;D1:E3;2;FALSO)`?

Quando temos na folha de cálculo ativa os valores indicados na figura abaixo, qual o resultado da fórmula `=PROCV(57;D1:E3;2;FALSO)`?

Resposta: 9

Imagem

2. Valor na célula F2 após copiar e colar

Que valor ficará na célula F2 se a célula G2 estiver selecionada, for escolhida a opção "Copiar" e depois for escolhida a opção "Colar" quando a célula F2 estiver ativa?

Resposta: 2,5

Imagem

3. Número mínimo de folhas em um livro Excel

Um livro Excel tem obrigatoriamente no mínimo:

Resposta: 1 folha

4. Resultado de `=D1=F2` com datas

Qual será o resultado de se escrever em determinada célula `=D1=F2`, sabendo que as células referidas contêm datas?

Opções:

  • Erro
  • Sim ou Não
  • Verdadeiro ou Falso
  • 0 ou 1

5. Resultado de `=-3^2&2` no Excel

Sabendo que a negação (-) tem uma prioridade mais elevada do que os restantes operadores utilizados na fórmula `=-3^2&2`, e o operador concatenação (&) tem a prioridade mais baixa, qual será o seu resultado quando colocada numa célula de uma folha Excel?

Resposta: 92

6. Valores visualizados após execução de `ProcA`

Considere os subprocedimentos seguintes:

Sub ProcA()
    Dim A As Long
    Dim B As Long
    A = 100: B = 200
    ProcB A, B
End Sub

Sub ProcB(ByRef X As Long, ByVal Y As Long)
    X = 10
    Y = 20
    MsgBox X & ", " & Y
End Sub

Que valores serão visualizados quando o subprocedimento `ProcA` for executado?

Resposta: 10, 20

Perguntas e Respostas sobre VBA

1. Declaração de variável para armazenar "APROG"

Para termos uma variável A com o valor "APROG", essa variável pode ser declarada das seguintes formas:

  • Dim A
  • Dim A As Texto (Incorreto)
  • Dim A As Variant
  • Dim A As String

2. Limitação da formatação condicional

Com a formatação condicional não é possível:

  • Indicar mais de uma condição a verificar na aplicação da formatação
  • Especificar uma condição que procure o que está a negrito e formatar também a itálico tudo o que estiver a negrito
  • Aplicar uma formatação aos valores que estejam acima da média de um conjunto de valores sem que o utilizador introduza uma fórmula

3. Referenciar célula A1 da Folha2 a partir da Folha1

Como pode ser referida a célula A1 da Folha 2 quando a folha ativa é Folha1?

  • Folha1!A1
  • Folha2.A1
  • Folha2/A1
  • Folha2!A1

4. Afirmações sobre objetos VBA

Sobre os objetos VBA podemos afirmar que:

  • Têm obrigatoriamente um tamanho (Incorreto)
  • Têm propriedades
  • Têm funções (Incorreto)
  • Podem atuar como contentores para outros objetos
  • O objeto Workbook representa uma folha (Incorreto)

5. Algoritmos de pesquisa em matrizes

Os algoritmos de pesquisa que terminam quando é encontrado um valor maior que o procurado não podem ser aplicados aos valores que estejam numa matriz:

  • Se os valores forem datas
  • Se existirem valores repetidos
  • Se os valores não estiverem ordenados
  • Se existirem valores que correspondem a datas e números inteiros

6. Invocação de subprocedimento com `ParamArray`

Um determinado subprocedimento começa da forma seguinte:

Sub somarNumeros(n1, n2, ParamArray numeros() As Variant)

Como pode o subprocedimento ser invocado?

  • Call somarNumeros(25, 25, "1", "aprog")
  • Call somarNumeros(25, 25, 25, 'aprog')
  • Call somarNumeros(25, "aprog")
  • Call somarNumeros
  • Call somarNumeros(25)
  • Call somarNumeros(25, 25)
  • Call somarNumeros(25, 25, 25, 25)

7. Resultado do subprocedimento `ForNextStepDemo`

Considere o subprocedimento seguinte:

Sub ForNextStepDemo()
    Dim i As Single
    For i = 5 To 1 Step -2.5
        [A3] = [A3] + i
    Next i
End Sub

Sabendo que a célula A3 estava vazia, podemos afirmar que:

  • Se a variável i fosse do tipo Integer, o resultado seria o mesmo (Incorreto)
  • Na célula A3 ficará o valor 7,5 depois do subprocedimento ser executado
  • Na célula A3 ficará o valor 8 depois do subprocedimento ser executado (Incorreto)
  • O subprocedimento não será executado com sucesso e a célula A3 continuará vazia (Incorreto)
  • O subprocedimento não será executado com sucesso e o conteúdo da célula A3 será #VALOR? (Incorreto)

8. Resultado do subprocedimento `EncontrarPrimeiraB`

Considere o subprocedimento seguinte:

Sub EncontrarPrimeiraB()
    Dim FoundCell As Range, Area As Range
    Dim LastCell As Range
    Set Area = Range("A1").CurrentRegion
    Set FoundCell = Area.Find(what:="porto", searchDirection:=xlNext)
    MsgBox FoundCell.Address
End Sub

Podemos afirmar que:

  • Resultará em erro se nada for encontrado
  • Mostrará "Not found" se nada for encontrado (Incorreto)
  • Mostra o endereço de todas as células com o valor especificado (Incorreto)
  • Mostrará logo o endereço da célula A1 se o valor especificado existir em várias células e inclusive na célula A1 (Incorreto)

Função `Somatorio` Corrigida

Pretende-se uma função que calcule \(\sum_{i=1}^{n} (i+1)\) (n é um número inteiro maior que 1) e para isso foi escrita a seguinte função:

Function Somatorio(indiceSup As Integer) As Long
    Dim soma As Long, i As Integer
    soma = 0
    For i = 1 To indiceSup
        soma = i
    Next i
    Somatorio = soma
End Function

No entanto, a função Somatorio não produz os resultados esperados. Por exemplo, Somatorio(3) deveria retornar o valor 9 (\(\sum_{i=1}^{3} (i+1)\) ) mas retorna o valor 3. Reescreva a função para que passe a retornar o valor esperado quando recebe um número inteiro maior que 1.

Função corrigida:

Function Somatorio(indiceSup As Integer) As Long
    Dim soma As Long, i As Integer
    soma = 0
    For i = 1 To indiceSup
        soma = soma + (i + 1)
    Next i
    Somatorio = soma
End Function

Entradas relacionadas: