ワークブックのシート1で文字列「犬」を検索するコードがいくつかあります。文字列はシートに何度も表示される可能性があり、文字列がそれらの列で見つかった場合、列番号のベクトルが得られます(犬はできます)各列に 1 回だけ表示されます)。このマクロを割り当てるシートにボタンがあります。
Option Explicit
Sub mymacro2()
Dim dog() As Integer
Dim coldog As Range
Set coldog = Sheets(1).UsedRange.Find("dog", , xlValues, xlWhole)
Dim i As Integer
i = 0
ReDim dog(0)
dog(i) = coldog.Column
Do
i = i + 1
ReDim Preserve dog(i)
Set coldog = Sheets(1).UsedRange.FindNext(coldog)
dog(i) = coldog.Column
Loop While dog(i) <> dog(0)
ReDim Preserve dog(i - 1)
Sheets(1).Cells(1, 1).Resize(1, UBound(Application.Transpose(dog))) = dog
'above line is displaying the vector on the sheet for testing purposes
Set coldog = Nothing
ReDim dog(0)
End Sub
マクロは、必要なベクトルを与えてくれます。つまり、どの列に文字列 "dog" があるかを教えてくれます。
ここで、コードを変更するか、シート 2 の列 1 にある文字列のリスト内の各文字列に対して同じことを行うまったく新しいコードを作成したいと考えています。列番号を持つすべてのベクトルは、列情報を持つ文字列と同じ名前でなければなりません。上記のコードで手動で行うように。
ポイントは、同じことを行う必要がある約 130 匹の動物のリストがあることです。Excel VBAでそれを行う最良の方法は何ですか?