連動しないのは、高さ不足だと思います。画像の様にスクロールできる高さにすれば、連動します。選択する会社をクリックして、青にすれば、右にその会社のリストが表示されます。
クラスモジュール使って、短くしました。
ユーザーフォーム
Option Explicit
Private colEvent As New Collection
'
Private Sub UserForm_Initialize()
Dim Class As Class1
Dim CNo As Integer
Dim RInp As Long
Dim NewItem As String
Dim OldItem As String
'
For CNo = 1 To 9 Step 2
Set Class = New Class1
Set Class.ListBox = Controls(\u0026quot;Listbox\u0026quot; \u0026amp; CNo)
colEvent.Add Class
'
For RInp = 2 To Cells(Rows.Count, \u0026quot;A\u0026quot;).End(xlUp).Row
NewItem = Cells(RInp, \u0026quot;A\u0026quot;)
'
If NewItem \u0026lt;\u0026gt; OldItem Then
Controls(\u0026quot;Listbox\u0026quot; \u0026amp; CNo).AddItem NewItem
End If
OldItem = NewItem
Next RInp, CNo
End Sub
クラスモジュール(Class1)
Option Explicit
Private WithEvents pListBox As MSForms.ListBox
Private pForm As MSForms.UserForm
'
Public Property Set ListBox(ByVal aListBox As MSForms.ListBox)
Set pListBox = aListBox
Set pForm = aListBox.Parent
End Property
'
Private Sub pListBox_Change()
Dim CName As String
Dim RSta As Long
'
CName = \u0026quot;ListBox\u0026quot; \u0026amp; Mid(pListBox.Name, 8) + 1
RSta = WorksheetFunction.Match(pListBox.Value, [A:A], 0)
UserForm1.Controls(CName).RowSource = \u0026quot;B\u0026quot; \u0026amp; RSta \u0026amp; _
\u0026quot;:B\u0026quot; \u0026amp; WorksheetFunction.CountIf([A:A], pListBox.Value) + RSta - 1
End Sub