Excel planilha vba questoes perguntas e respostas retorna em um shapes

Sáb, 12 de Fevereiro de 2011 09:07 Expedito Marcondes
Imprimir

Saberexcel - o site das macros

Esta macro do Aplicativo Microsoft Excel VBA(Visual Basic Application), contém uma macro que gera uma pergunta aleatória  faz um loop nas respostas e de forma aleatoria a resposta é direcionada para uma autoforma(Shapes). A busca é realizada em outra planilha (Banco de Dados).
O exemplo tem finalidade didática.  (observe que a simetria no código facilita muito o entendimento)
Veja bem, no aprendizado VBA você tem por obrigação em aprender, o que são esses vocábulos e seus membros mais importantes.

CÓDIGOS ESTÃO NA PRIMEIRA LINHA DA MACRO
  Set c = Sheets("BD").Range("A1").Offset(Int(Rnd() * [Questoes].Count + 1), 0)

'Set' , 'c'  , 'Sheets', 'Range', 'OffSet', 'Int', 'Rnd','questoes-range dinamico nomeado','Count',. - 
(viu que não é dificil) esses nomes são "Vocábulos do VB"



             A B
1 VOCABULÁRIO   << S I G N I F I C A D O >>
 2 Instrução Set Atribui uma referência de objeto a uma variável ou propriedade
 3 Variável c Variáveis servem para armazenarmos dados e usarmos quando necessário
 4 Objeto Range Representa uma célula, uma linha, uma coluna, uma seleção de células
contendo um ou mais blocos contíguos de células ou um intervalo 3D.
 5  Propriedade Offset  Retorna um objeto Range, que representa um intervalo que é deslocado
do intervalo especificado
 6 Instrução Int Função que retorna parte de um inteiro
 7 Funçao Rnd Função que retorna um Single que contém um número aleatório
 8 Propriedade Count Retorna um Long (número inteiro longo) que contém o número de objetos de uma coleção.
9 COMO SABER Teclando F1 no VBE na palavra chave, abrirá o Help do item selecionado.

 Sub Gera_questao_resposta_aleatoria()
    Set c = Sheets("BD").Range("A1").Offset(Int(Rnd() * [Questoes].Count + 1), 0)

    Saber1.Shapes("sb").Visible = False
    Saber1.Shapes("sbm").Visible = False
    Saber1.Shapes("sbm1").Visible = False

   
With Sheets("Questões")
       
        [B5] = c            
        [C5] = c(1, 3)
        [D5] = c(1, 4)
        [E5] = c(1, 5)
        [F5] = c(1, 6) 'código
       
        'essa instrução With foi criada para retornar os valores no Shapes(Autoforma)'Saber'
        With .Shapes("Saber")
             .TextFrame.Characters.Text = c(1, 2)
             .Visible = False
        End With
      
    End With
  [F8].Select
End Sub

essa macro foi criada somente para tornar os shapes(autoformas) visíveis.
Sub ver()
    Saber1.Shapes("Saber").Visible = True
    Saber1.Shapes("sb").Visible = True
    Saber1.Shapes("sbm").Visible = True
    Saber1.Shapes("sbm1").Visible = True  
End Sub

'caso queira programar pela folha de código da folha de planilha, bem simples olhe no projeto vba
'caso o usuário mude o nome da folha de planilha lá na aba das planilha, não ocorrerá o erro de
'localização do objeto Worksheet. Ok...

Sub Gera_questao_resposta_aleatoria_1()
    Set c = Saber2.Range("A1").Offset(Int(Rnd() * [Questoes].Count + 1), 0)
    With Saber1 'planilha Questões
       
        [B5] = c
        [C5] = c(1, 3)
        [D5] = c(1, 4)
        [E5] = c(1, 5)
        [F5] = c(1, 6) 'código
       
        'essa instrução With foi criada para retornar os valores no Shapes(Autoforma)'Saber'
        With .Shapes("Saber")
             .TextFrame.Characters.Text = c(1, 2)
             .Visible = False
        End With
   
    End With
End Sub




Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel





  baixe o exemplo de planilha contendo as macros acima.
Excel planilha vba perguntas e resposta retorna valor shapes (48.43 Kb) 

Tags:
Última atualização em Dom, 14 de Agosto de 2011 12:45