Resumo
Este artigo contém procedimentos de exemplo do Microsoft Visual Basic for Applications que pode utilizar para trabalhar com vários tipos de matrizes.
Mais Informações
A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isto inclui, mas não se limita a, as garantias implícitas de comercialização ou adequação para um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação que está a ser demonstrada e com as ferramentas que são utilizadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidades adicionais ou criar procedimentos para satisfazer os seus requisitos específicos. NOTA: em Visual Basic for Applications procedimentos, as palavras após o apóstrofo (') são comentários.
Para Preencher uma Matriz e, em seguida, Copiá-la para uma Folha de Cálculo
-
Abra um novo livro e insira uma folha de módulos do Visual Basic.
-
Escreva o seguinte código na folha do módulo.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Selecione Folha1.
-
No menu Ferramentas, aponte para Macro e, em seguida, clique em Macros.
-
Na caixa de diálogo Macro, clique em Sheet_Fill_Array e, em seguida, clique em Executar.
Para Tirar Valores de uma Folha de Cálculo e Preencher a Matriz
-
Escreva valores na Folha1 nas células A1:A10.
-
Numa folha de módulos do Visual Basic, escreva o seguinte código:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Selecione Folha1.
-
No menu Ferramentas, aponte para Macro e, em seguida, clique em Macros.
-
Na caixa de diálogo Macro, clique em from_sheet_make_array e, em seguida, clique em Executar.
Para Passar e Receber uma Matriz
-
Numa folha de módulo, escreva o seguinte código:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Selecione Folha1 e realce o intervalo A1:A10.
-
No menu Ferramentas, aponte para Macro e, em seguida, clique em Macros.
-
Na caixa de diálogo Macro, clique em pass_array e, em seguida, clique em Executar.
Para Comparar Duas Matrizes
-
Crie dois intervalos com nome na Folha1. Atribua um nome a um intervalo1 e ao outro intervalo2.
Por exemplo, realce o intervalo de células A1:A10 e dê-lhe o nome intervalo1; realce o intervalo de células B1:B10 e dê-lhe o nome intervalo2. -
Escreva o seguinte código na folha do módulo.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Selecione Folha2.
-
No menu Ferramentas, aponte para Macro e, em seguida, clique em Macro.
-
Na caixa de diálogo Macro, clique em compare_two_array e, em seguida, clique em Executar.
Verá uma caixa de mensagem para cada comparação.
Para Preencher uma Matriz Dinâmica
-
Numa folha de módulo, escreva o seguinte código:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
No menu Ferramentas, aponte para Macro e, em seguida, clique em Macros.
-
Na caixa de diálogo Macro, clique em fill_array e, em seguida, clique em Executar.
NOTA: a alteração da variável "number_of_elements" determinará o tamanho da matriz.