Union メソッド ?
いつもこちらでお世話になっております。
全くのど素人で申し訳ありません。
会社でエクセル2003を使用しています。
データを一括検索したく、あるサイトでこのマクロを見つけました。
「検索結果のセルをすべて選択する」
Sub SelectTargets()
Dim Target As String
Dim FoundCell As Range, SearchArea As Range
Dim Addr As String
Dim FoundAddr() As String
Dim i As Long
Target = Application.InputBox("検索文字列入力", "検索", Type:=2)
If Target = "False" Then Exit Sub
Set SearchArea = ActiveSheet.UsedRange
Set FoundCell = SearchArea.Find(what:=Target, LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False, MatchByte:=False)
If FoundCell Is Nothing Then Exit Sub
Addr = FoundCell.Address
Do
ReDim Preserve FoundAddr(i) '配列の内容を維持したまま再宣言
FoundAddr(i) = FoundCell.Address '検索結果のアドレスを配列に格納
Set FoundCell = SearchArea.FindNext(After:=FoundCell)
i = i + 1
If FoundCell Is Nothing Then Exit Do
Loop Until FoundCell.Address = Addr
'配列に格納されたアドレスをカンマ区切りで結合し、セル範囲を一括選択
Range(Join(FoundAddr, ",")).Select '---(1)
End Sub
補足として
Rangeプロパティの引数に指定する文字列には文字数制限があるため、検索対象のセルが多いと(1)でエラーが発生します。その場合はUnionメソッドを使用して対象セルを選択すると良いでしょう。
と、補記があり調べてみると「変数Targetの文字数が255を超えたとき」エラーとなるとのこと。
「Union メソッド」をいろいろ調べて試してみたのですが…
やはり、さっぱり全くできません。
ご教授いただけませんでしょうか?
お礼
図解で回答頂き有難うございました。 ホースを抜くことができました。 分りやすい回答に感謝いたします。