| 
    
     |  | ▼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です。
 教えてください。
 
 |  |