Crear y utilizar un diccionario en VBA
- requisitos previos
-
Cree el objeto
Dictionary
usando VBA -
Agregar elementos en el objeto
Dictionary
usando VBA -
Devolver un valor en el
Diccionario
usando VBA -
Cambiar un valor en el
Diccionario
usando VBA -
Cuente el artículo en el
Diccionario
usando VBA - Imprimir todas las claves y valores en el diccionario
El objeto Dictionary
en VBA no está relacionado con el diccionario de idiomas, que usamos para saber el significado de las palabras.
En VBA, el objeto Dictionary
es de alguna manera similar al objeto Colección
en el almacenamiento de datos. La principal diferencia es que una Colección
no puede:
- Comprobar si un artículo está en la colección
- Cambiar el valor de un artículo existente
Por supuesto, aún podemos usar Colección
y crear soluciones para este problema, pero Diccionario
ofrece estas soluciones con métodos predefinidos. Por lo tanto, Diccionario
puede ser útil para tareas específicas, particularmente al recuperar un elemento determinado.
Este artículo demuestra cómo crear y utilizar el objeto Dictionary
para realizar ciertas funcionalidades en su código VBA.
requisitos previos
El objeto Dictionary
no viene con la biblioteca predeterminada de VBA. Por lo tanto, antes de utilizar completamente el objeto Dictionary
, es necesario hacer referencia a la biblioteca Microsoft Scripting Runtime
, incluido el objeto Dictionary
.
-
Abrir archivo de Excel.
-
Desde la
Pestaña Desarrollador
, abre el EditorVisual Basic
. -
Desde la barra de herramientas
Herramientas
, haga clic enReferencias
. -
Marque la casilla de verificación
Microsoft Scripting Runtime
.
Ya está todo listo.
Cree el objeto Dictionary
usando VBA
Ahora que el Microsoft Scripting Runtime
está en las Referencias
, el bloque de código a continuación demostrará cómo crear un objeto Dictionary
.
Cree un objeto de la biblioteca Scripting.Dictionary
, luego inicialícelo como un nuevo objeto.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
End Sub
Agregar elementos en el objeto Dictionary
usando VBA
Sintaxis:
[DictionaryObject].Add([Key], [Item])
Parámetros:
[DictionaryObject] |
Requerido. El nombre del Diccionario |
[Key] |
Requerido. Los datos por los que se referencia el Ítem dentro del Diccionario . |
[Item] |
Requerido. Establece o devuelve el valor de un Item en el Diccionario |
Podemos agregar elementos al Diccionario
usando el bloque de código anterior. Los nombres (Glen, Myla, Katrina, Jose) se agregaron como clave y su edad respectiva como valores en el bloque de código a continuación.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add ("Glen", 25)
d.Add ("Myla", 49)
d.Add ("Jose", 58)
d.Add ("Katrina", 18)
End Sub
Devolver un valor en el Diccionario
usando VBA
Con el Diccionario
, podemos devolver un valor sabiendo la clave que le corresponde.
Sintaxis de retorno:
[Value] = [DictionaryObject](Key)
Cambiar sintaxis:
[DictionaryObject](Key) = [Value]
Parámetros:
[DictionaryObject] |
Requerido. El nombre del Diccionario |
[Key] |
Requerido. Los datos por los que se referencia el Ítem dentro del Diccionario . |
[Value] |
Requerido. Establece o devuelve el valor de un Item en el Diccionario |
Usando la sintaxis, el valor de la clave Myla
devolvió 49
.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
Debug.Print d("Myla")
End Sub
Producción :
49
Cambiar un valor en el Diccionario
usando VBA
Con el Diccionario
, podemos cambiar un valor sabiendo la clave que le corresponde.
Cambiar sintaxis:
[DictionaryObject](Key) = [Value]
Parámetros:
[DictionaryObject] |
Requerido. El nombre del Diccionario |
[Key] |
Requerido. Los datos por los que se referencia el Ítem dentro del Diccionario |
[Value] |
Requerido. Establece o devuelve el valor de un Item en el Diccionario |
En el bloque de código a continuación, el valor de la clave Myla
se cambió de 49
a 50
utilizando la sintaxis anterior.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
d("Myla") = 50
Debug.Print d("Myla")
End Sub
Producción :
50
Cuente el artículo en el Diccionario
usando VBA
Podemos devolver el número de todos los elementos dentro del Diccionario
usando el método Count
.
Sintaxis Count
:
[Value]= [DictionaryObject].Count
Parámetros:
[DictionaryObject] |
Requerido. El nombre del Diccionario |
[Value] |
Devuelve el número de elementos del Diccionario |
En el siguiente ejemplo, obtenemos el contenido del objeto d
usando el método Count
.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
Debug.Print "There are " & d.Count & " items in the Dictionary."
End Sub
Producción :
There are 4 items in the Dictionary.
Imprimir todas las claves y valores en el diccionario
El bloque de código a continuación imprimirá todas las claves y valores dentro del Diccionario
usando un bucle.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
Dim Key as Variant
For Each Key In d.Keys
Debug.Print Key, d(Key)
Next
End Sub
Producción :
Glen 25
Myla 49
Jose 58
Katrina 18