| 
    
     |  | いつも皆様には大変お世話になっております、ありがとう御座います。 
 今回、変数の受け渡しについて教えて頂けないかと投稿させて頂きました。
 まだまだ力不足で無駄なコードが多いとは思いますが生暖かい目で見ていただけると幸いです。
 
 下記のコードで、userform2のlistbox1にuserform1のcombobox1で検索したmykekkaのoffsetを反映させました。
 この後ですが、変数rangid(rangidno)をuserform2のlistbox1で再度使いたいと思い自分なりに調べてみたのですが全く要領を得ることができません。
 
 ぜひ配列変数の受け渡し方法について教えて頂けないでしょうか、よろしくお願いいたします。
 
 Private Sub ComboBox1_Change()
 Dim mykekka As Range
 Dim rangidno As Byte, rangid() As Variant
 
 UserForm2.ListBox1.Clear
 If Me.ComboBox1 <> "" Then
 With ThisWorkbook.Worksheets("○○").Range("b:b")
 Set mykekka = .Find(what:=ComboBox1, _
 lookat:=xlWhole, _
 SearchOrder:=xlByColumns, _
 MatchCase:=False, _
 MatchByte:=False)
 
 '〜〜同一があった場合〜〜
 If Not mykekka Is Nothing Then
 first = mykekka.Address
 Do
 '〜〜ReDimの為のカウント〜〜
 rangidno = rangidno + 1
 
 '〜〜変数rangidの要素数の変更(前に格納したデータを消さずに)〜〜
 ReDim Preserve rangid(rangidno)
 
 '〜〜変数rangidに見つかったセルを格納〜〜
 rangid(rangidno) = mykekka.Address
 
 Set mykekka = .FindNext(After:=mykekka)
 Loop Until mykekka.Address = first
 
 '〜〜userform2に格納したデータを反映〜〜
 With UserForm2
 With .ListBox1
 .ColumnCount = 2
 .ColumnWidths = "45;45"
 For i = 1 To rangidno
 .AddItem
 .List(i - 1, 0) = StrConv("part.no." & ThisWorkbook.Worksheets("○○") _
 .Range(rangid(i)).Offset(0, 1), 3)
 .List(i - 1, 1) = StrConv("rev.no." & ThisWorkbook.Worksheets("○○") _
 .Range(rangid(i)).Offset(0, 2), 3)
 Next i
 End With
 .StartUpPosition = 0
 .Top = UserForm1.Top
 .Left = UserForm1.Left + 145
 .Show (vbModeless)
 End With
 
 |  |