投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/7/9 20:30:51
先の提示例では、複数選択可能な ListBox を想定しています。
また、ListBox にアイテムを初期表示したり、初期選択するコードは省略しています。


「ListBox に表示するデータ」を VB6 側で用意するのではなく、
VBScript 側で用意するのであれば、たとえばこのように書けます。

<クラス側>
' items は、VBScript 側から渡されたデータ(配列でも Dictionary でも String でもお好みで) 
'  
Public Function ShowDialog(ByVal items As VariantAs Variant
    Dim dlg As frmHist
    Set dlg = New frmHist
    dlg.Constructor items
    Load dlg
    dlg.Show vbModal
    ShowDialog = dlg.SelectedIndices
    Set dlg = Nothing
End Function


<フォーム側>
Private m_items As Variant
Private m_selectedIndices() As Variant
Friend Sub Constructor(ByVal items As Variant)
    m_items = items
End Sub
Private Sub Form_Load()
    m_selectedIndices = Array()
    cmdOK.Default = True
    Dim vnt As Variant
    For Each vnt In m_items
        List1.Items.Add vnt
    Next
End Sub



また、「選択されたアイテムのインデックス群」を返すのではなく、
選択されたアイテム(の一覧)を直接返却させるようにしたり、
あるいは Dictionary を用いて キーと値の一覧を返すように実装しても良いかと。

※ Dictionary で返す場合、VBScript 側で Set ステートメントでの受け取りが必要になります。