end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

excelのvbaでHashMap(連想配列)を使う

# 2017/4/30
以前、記載したエントリでは、「ツール」->「参照設定」の設定が必要でしたので、
以下のScripting.Dictionary による方法がよさそう。
```visualbasic
Dim summary As Object
Set summary = CreateObject("Scripting.Dictionary")
```




次のように Scripting.Dictionary を使います。
vb editorのメニューバーから「ツール」->「参照設定」から「Microsoft Scripting Runtime」を選択する必要もあります

Option Explicit

Sub ChkZumen()

    Dim i
    Dim ZumenDic As Scripting.Dictionary
    Set ZumenDic = New Scripting.Dictionary
    
    Dim ZumenListWs As Worksheet
    Set ZumenListWs = Worksheets("図面一覧")
    Dim TeiListWs
    Set TeiListWs = Worksheets("邸一覧ORG")
    
    '図面DICTIONARY作成
    i = 19
    Do While ZumenListWs.Cells(i, 3).Value <> ""
        If ZumenListWs.Cells(i, 7).Value <> "" And _
           Not ZumenDic.Exists(ZumenListWs.Cells(i, 3).Value) Then
    
            ZumenDic.Add ZumenListWs.Cells(i, 3).Value, ZumenListWs.Cells(i, 7).Value
        End If
        i = i + 1
    Loop


    '図面CHECK
    i = 2
    Do While TeiListWs.Cells(i, 1).Value <> ""
        If ZumenDic.Exists(TeiListWs.Cells(i, 5).Value) Then
            TeiListWs.Cells(i, 6).Value = "○"
        Else
            TeiListWs.Cells(i, 6).Value = ""
        End If
        i = i + 1
    Loop
    
End Sub