|
▼inoue さん:
>▼inoue さん:
>>別に「選択」にこだわらずに1行ずつ解析して非表示にすれば良いと思います。
>「横」でしたね。「1行ずつ解析して」ではなく「1列ずつ解析して」でした。
ありがとうございます。
一応初心者なりに考えたコードです。
Sub ある行内で検索した文字列を選択()
Dim Target As String
Dim FoundCell As range
Dim Addr As String
Dim SearchArea As range
Dim FoundAddr() As String
Dim i As Long
Target = Application.InputBox("検索文字列入力", "検索", Type:=2)
If Target = "False" Then Exit Sub
Set SearchArea = Rows(1)
Set FoundCell = SearchArea.Find(What:=Target)
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
Loop While FoundCell.Address <> Addr And Not FoundCell Is Nothing
'配列に格納された値をコンマ区切りで結合してセル範囲を一括選択
range(Join(FoundAddr, ",")).Select
End Sub
いろんなサイトのサンプルを切ったり貼ったりしてます。
おかしなところがあるかも知れませんが、自分としてはいいとこまで来てると思っています・・・・・・・;
このコードは検索した文字列のセルを選択しますが、
私がほしいのは、検索した文字列を含まないセルを選択してほしいのです。
横フィルタは、そのセルを非表示にすれば完成なのですが・・・・
>1列ずつ解析して非表示にすれば良い
とは、どうすればよいのでしょうか?
まったく他の考え方でもOKです。
教えてください。
|
|