/ / Scripting.DictionaryキーをListbox VBA Excelに変換する - Excel、Excel、Excel、ListBox、Scripting.dictionary

リストボックスVBAエクセル、vba、エクセル-vba、リストボックス、scripting.dictionaryへのScripting.Dictionaryキー

私はExcelのVBAで作業していて、最近Scripting.Dictionaryオブジェクトで作業を始めました。私は今日までどんな大きな問題にも遭遇していませんでした。

基本的に私はリストボックスに辞書のキー値を入力し、もう1つの値をリストボックスに追加します。この結果、値はリストボックスに追加されるだけでなく、キーとして辞書に追加されます。 dict.keys()配列の値を完全に別の配列にコピーしようとしましたが、同じ問題があります。私はこれがbyref問題だと思っていますが、まだ解決策を見つけ出す必要はありません。誰かがすばらしいと思うアイデアがあれば。

Private Sub Setup_settingLst()
"Set Settings listbox items
"On Error GoTo ErrorExit
Dim list_ary() As Variant
Dim tmp As Variant
Dim i As Integer

settingLst.Clear
settingLst.Value = "-Select Setting-"
i = 0
tmp = tmp_dict.Keys()
If tmp_dict.Count > 1 Then
ReDim list_ary(0 To tmp_dict.Count)
For i = 0 To UBound(tmp)
list_ary(i) = tmp(i)
Next i
list_ary(tmp_dict.Count) = "Back"
Else
ReDim list_ary(0 To tmp_dict.Count - 1)
For i = 0 To UBound(tmp)
list_ary(i) = tmp(i)
Next i
End If
settingLst.List = list_ary
Erase list_ary
Exit Sub
ErrorExit:
End Sub

回答:

回答№1は1

これはうまくいくようです

Private Sub UserForm_Click()

Dim dcValues As Scripting.Dictionary

Me.ListBox1.Clear
Set dcValues = FillDictionary

Me.ListBox1.List = dcValues.Keys
Me.ListBox1.AddItem "Back"

End Sub