| 
    
     |  | はじめまして。VBAはじめて半年ほどの者です。 今回、以下のようなマクロを組みました。
 セル範囲Range("A19:D40")の中のデータで、
 別テーブル内、Aの列のデータがあれば、Bの列のデータに置き換える、というマクロです。
 以下のコードで、正常に動作しました!
 
 
 Sub 範囲内で置き換え()
 Dim mr As Range
 Dim A(13) As String
 Dim B(13) As String
 Dim i As Integer
 
 
 For i = 0 To 13
 A(i) = Cells(i + 2, 3)
 B(i) = Cells(i + 2, 4)
 
 For Each mr In ActiveSheet.Range("A19:D40")
 If mr.Value = A(i) Then
 mr.Value = B(i)
 End If
 
 Next
 Next
 End Sub
 
 
 これは、静的配列なのですが、動的配列にしたくて、変数iを、
 そのときのテーブルの行数によって変わるように、
 
 Selection.CurrentRegion.Select
 Selection.End(xlDown).Activate
 
 i = ActiveCell.Row
 
 とすると、テーブルの行数が変わっても動作するようになりました。
 
 私がしたいのはこれからです。
 
 セル範囲、Range("A19:D40")が、そのときによって範囲(行数)が変わるばあい、
 Range(Cells(19, 1), Cells(4, i))・・・iは上記のように、行数を取得したいのですが、
 エラーがでてうまく動きません。
 このように、セル範囲の行数がそのときによって変わる場合はどのようにしたらよいのでしょうか?
 すみませんが、助言いただければと思います。よろしくお願いいたします!
 
 
 |  |