|    | 
     いつも皆様には大変お世話になっております、ありがとう御座います。 
 
今回、変数の受け渡しについて教えて頂けないかと投稿させて頂きました。 
まだまだ力不足で無駄なコードが多いとは思いますが生暖かい目で見ていただけると幸いです。 
 
下記のコードで、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 
 | 
     
    
   |