Uso de matricesUsing arrays

Puede declarar una matriz para que funcione con un conjunto de valores del mismo tipo de datos.You can declare an array to work with a set of values of the same data type. Una matriz es una variable sencilla con muchos compartimentos para almacenar valores, mientras que una variable típica solo tiene un compartimento de almacenamiento en que se puede almacenar solamente un valor.An array is a single variable with many compartments to store values, while a typical variable has only one storage compartment in which it can store only one value. Se hace referencia a la matriz en conjunto cuando quiere referirse a todos los valores que contiene, o se puede hacer referencia a sus valores individuales.Refer to the array as a whole when you want to refer to all the values it holds, or you can refer to its individual elements.

Por ejemplo, para almacenar gastos diarios para cada día del año, puede declarar una variable de matriz con 365 elementos en lugar de declarar 365 variables.For example, to store daily expenses for each day of the year, you can declare one array variable with 365 elements, rather than declaring 365 variables. Cada elemento de la matriz contiene un valor.Each element in an array contains one value. La siguiente instrucción declara la variable de la matriz con 365 elementos.The following statement declares the array variable with 365 elements. De manera predeterminada, una matriz se indiza comenzando por cero, de modo que el límite superior de la matriz es 364 en lugar de 365.By default, an array is indexed beginning with zero, so the upper bound of the array is 364 rather than 365.

Dim curExpense(364) As Currency 

Para establecer el valor de un elemento individual, debe especificar el índice del elemento.To set the value of an individual element, you specify the element's index. El siguiente ejemplo asigna un valor inicial de 20 a cada elemento de la matriz.The following example assigns an initial value of 20 to each element in the array.

Sub FillArray() 
 Dim curExpense(364) As Currency 
 Dim intI As Integer 
 For intI = 0 to 364 
 curExpense(intI) = 20 
 Next 
End Sub

Cambiar el límite inferiorChanging the lower bound

Puede usar la instrucción Option base en la parte superior de un módulo para cambiar el índice predeterminado del primer elemento de 0 a 1.You can use the Option Base statement at the top of a module to change the default index of the first element from 0 to 1. En el siguiente ejemplo, la instrucción Option base cambia el índice del primer elemento y la instrucción Dim declara la variable de matriz con 365 elementos.In the following example, the Option Base statement changes the index for the first element, and the Dim statement declares the array variable with 365 elements.

Option Base 1 
Dim curExpense(365) As Currency 

También puede establecer explícitamente el límite inferior de una matriz usando la cláusula To, como se muestra en el siguiente ejemplo.You can also explicitly set the lower bound of an array by using a To clause, as shown in the following example.

Dim curExpense(1 To 365) As Currency 
Dim strWeekday(7 To 13) As String 

Almacenamiento de valores de Variant en matricesStoring Variant values in arrays

Hay dos formas de crear matrices de valores Variant .There are two ways to create arrays of Variant values. Una manera es declarar una matriz de tipo de datos Variant, como se muestra en el siguiente ejemplo:One way is to declare an array of Variant data type, as shown in the following example:

Dim varData(3) As Variant 
varData(0) = "Claudia Bendel" 
varData(1) = "4242 Maple Blvd" 
varData(2) = 38 
varData(3) = Format("06-09-1952", "General Date") 

La otra manera es asignar la matriz devuelta por la función Array a la variable de Variant, como se muestra en el siguiente ejemplo.The other way is to assign the array returned by the Array function to a Variant variable, as shown in the following example.

Dim varData As Variant 
varData = Array("Ron Bendel", "4242 Maple Blvd", 38, _ 
Format("06-09-1952", "General Date")) 

Los elementos de una matriz de valores de Variant se identifican por índice, independientemente de la técnica que se usa para crear la matriz.You identify the elements in an array of Variant values by index, no matter which technique you use to create the array. Por ejemplo, la siguiente instrucción se puede agregar a cualquiera de los ejemplos anteriores.For example, the following statement can be added to either of the preceding examples.

MsgBox "Data for " & varData(0) & " has been recorded." 

Uso de matrices multidimensionalesUsing multidimensional arrays

En Visual Basic, puede declarar matrices con hasta 60 dimensiones.In Visual Basic, you can declare arrays with up to 60 dimensions. Por ejemplo, la siguiente instrucción declara una matriz 5 por 10 de 2 dimensiones.For example, the following statement declares a 2-dimensional, 5-by-10 array.

Dim sngMulti(1 To 5, 1 To 10) As Single 

Si piensa en la matriz como una matriz, el primer argumento representa las filas y el segundo argumento representa las columnas.If you think of the array as a matrix, the first argument represents the rows and the second argument represents the columns.

Use Nested for... Next para procesar matrices multidimensionales.Use nested For...Next statements to process multidimensional arrays. El siguiente procedimiento rellena una matriz de dos dimensiones con valores de Single.The following procedure fills a two-dimensional array with Single values.

Sub FillArrayMulti() 
 Dim intI As Integer, intJ As Integer 
 Dim sngMulti(1 To 5, 1 To 10) As Single 
 
 ' Fill array with values. 
 For intI = 1 To 5 
 For intJ = 1 To 10 
 sngMulti(intI, intJ) = intI * intJ 
 Debug.Print sngMulti(intI, intJ) 
 Next intJ 
 Next intI 
End Sub

Vea tambiénSee also

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.