Descricao: |
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 o Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com os produtos didáticos SaberExcel
|