|
VBA初心者です。
以下のような内容を実行したいのですが、プログラム作成に苦戦しております。
シート名”会社情報一覧”のシートにて、検索したい会社名を選択、マクロの実行ボタンを
押すと、会社名の載っている別のシートを選択し、そこで検索をかけ、ヒットしたセルに
色を付ける。
シート名”会社情報一覧”
A B C D E
1 会社名 リンク Aグループ企業 Bグループ企業 Cグループ企業
2 ZF株式会社 マクロを実行する ○
リンクボタン
3 XYZ株式会社 マクロを実行する ○
リンクボタン
上の表の意味として、ZF株式会社の情報は、シート名”Aグループ企業”に載っているということです。
そのため、Aグループ企業のシートに飛んで、その中にあるZF株式会社のセルを探して色を付けるという
作業になります。
Sub オールラウンド拠点情報からのSC情報検索()
Dim Target As String '文字列を表示する引数Targetを宣言
Dim FoundCell As Range '文字列を表示する引数FoundCellを宣言
Dim SearchArea As Range '文字列を表示する引数SearchAreaを宣言
Dim Addr As String
Dim FoundAddr() As String
Dim i As Long
Target = ActiveCell
If Target = "False" Then Exit Sub 'もしも入力した文字がない場合は、プログラムを終了
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 3) = "○"
Worksheets("Aグループ企業").Select
End If
If Cells(i, 4) = "○"
Worksheets("Bグループ企業").Select
End If
If Cells(i, 5) = "○"
Worksheets("Cグループ企業").Select
End If
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
|
|