読者です 読者をやめる 読者になる 読者になる

bekkou68の日記

開発しているサービス, IT技術, 英語など。

Map (Dictionary) の内容をイミディエイトウィンドウに表示する - Show Map (Dictionary) Contents to Immediate WIndow

VBA

はじめに - Introduction

Mapの中身を知りたい時、ウォッチウィンドウだと、key しか表示されず、value が見られません。非常に不便です。
When we'd like to know contents of Map by using watch window, it only show key but value. It's too inconvenient.


なので、イミディエイトウィンドウに key と value を表示するようなメソッドを作りました。
So, I implemented method which shows key and value to immediate window.

実装 - Implementation

' ===== Outline
' Show key and value of Map to immediate window.
'
' ===== Argument
' objMap: Map, you'd like to show key and value.
'
' ===== Author
' bekkou68
Private Sub ShowMap(ByVal objMap As Object)
    Dim varKeys As Variant      ' All keys of Map.
    Dim varKey As Variant       ' Key of Map.
    Dim varMapValue As Variant  ' Value of Map.
   
    varKeys = objMap.keys
    For Each varKey In varKeys
        varMapValue = objMap.Item(varKey)
        Debug.Print CStr(varKey) & ": " & CStr(varMapValue)
    Next
    
    Set objMap = Nothing
End Sub

テスト - Test

Option Explicit

Public Sub TestShowMap()
    Dim objFruitPriceMap As Object ' Fruit and its price.
    Set objFruitPriceMap = CreateObject("Scripting.Dictionary")
    Call objFruitPriceMap.Add("Banana", 150)
    Call objFruitPriceMap.Add("Mango", 200)
    Call objFruitPriceMap.Add("Apple", 100)
    
    Call ShowMap(objFruitPriceMap)
    
    Set objFruitPriceMap = Nothing
End Sub

' ===== Outline
' Show key and value of Map to immediate window.
'
' ===== Argument
' objMap: Map, you'd like to show key and value.
'
' ===== Author
' bekkou68
Private Sub ShowMap(ByVal objMap As Object)
    Dim varKeys As Variant      ' All keys of Map.
    Dim varKey As Variant       ' Key of Map.
    Dim varMapValue As Variant  ' Value of Map.
   
    varKeys = objMap.keys
    For Each varKey In varKeys
        varMapValue = objMap.Item(varKey)
        Debug.Print CStr(varKey) & ": " & CStr(varMapValue)
    Next
    
    Set objMap = Nothing
End Sub


以下、イミディエイトウィンドウの出力。
The following is output of immediate window.

Banana: 150
Mango: 200
Apple: 100


うん、おk。
Now, good.


このメソッドは、CStr できる key と value にのみ、使用できます。
This method can be used for key and value which are able to be CStr.


−ω−