Option Base 1
Option Explicit
Sub ディクショナリ試験()
Dim arry As Variant
Dim val As Variant
Dim gyou As Long
Dim keta As Long
Dim i As Long
Dim j As Long
Dim mydic As Object
Dim namae As Variant
Set mydic = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet1")
arry = .Range(Cells(1, 1), Cells(5, 2))
End With
gyou = UBound(arry, 1)
keta = UBound(arry, 2)
With Worksheets("Sheet1")
For i = 1 To gyou
If Not mydic.exists(.Cells(i, 1).Value) Then
mydic.Add .Cells(i, 1).Value, .Cells(i, 2).Value 'ここでキーとitemを
End If '辞書に登録する
Next i 'この辺の書き方が分かりづらい
End With
繰り返し:
namae = InputBox("品名")
If namae = "終わり" Then
Exit Sub
End If
Debug.Print namae '品名を入力して
Debug.Print mydic.Item(namae) '品名に応じた数字が表示できる
GoTo 繰り返し
Set mydic = Nothing ’ここに到達しないんですが、Excelの場合は注意も無いですね。
'実際は無くてもあっても関係ないようです。
End Sub
取り敢えず連想記憶みたいなことは出来るようですね。但し疑問は残ります。品名とか
名前ならひとつに決めるのが難しいように思うんですね。個人名なら同姓同名もあるし
入力にスペースが有るとか無いとか。
メリットもあるようですよ。配列なら基本は最大を見込んで決める必要があると網のですが
この場合は関係なくなるようです。初めて使って見たのでもう少しやって見たいと思います。