- 締切済み
エクセルで特定も文字が含まれている行のみ選択
いつもお世話になっています^^ エクセルで、特定の文字が含まれている行以外を非表示にしたいです。 このカテゴリーで、削除するトピは見つけたのですが・・ 特定の文字は、複数列にまたがっております。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
すみませんでした。勘違いしているかも 先のコードでは、特定の文字が含まれないセルがあれば、行を非表示ですね。 If WorksheetFunction.CountIf(Rows(Rs.Row), "*" & Myname & "*") = 0 Then Rs.EntireRow.Hidden = True では如何でしょうか? 範囲の各行の中に、特定の文字がその行に含まれないなら非表示。 A列で上から順に検査するとして Sub Macro2() Myname = InputBox("検索文字") i = 1 Do While Cells(i, 1).Value <> "" If WorksheetFunction.CountIf(Rows(i), "*" & Myname & "*") = 0 Then Rows(i).EntireRow.Hidden = True i = i + 1 Loop End Sub こんなのも参考になりませんでしょうか。
- hallo-2007
- ベストアンサー率41% (888/2115)
一応、参考です。 処理したい範囲を選択して。以下、マクロを実行 InputBoxが表示されたら特定の文字を入れます。 Sub Macro1() Dim Rs As Range Myname = InputBox("検索文字") For Each Rs In Selection If Not Rs Like "*" & Myname & "*" And Rs <> "" Then Rs.EntireRow.Hidden = True Next End Sub
- merlionXX
- ベストアンサー率48% (1930/4007)
> ワンクリックで表示できるようなマクロが 仮にA1からA500までのデータのうち a という文字が含まれている行以外を非表示とするなら以下のようにできるという一例です。 Sub test01() Dim c As Range Columns("A:A").EntireRow.Hidden = False Application.ScreenUpdating = False For Each c In Range("A1:A500") If Not c.Value Like "*a" Then c.EntireRow.Hidden = True End If Next c Application.ScreenUpdating = True End Sub
お礼
ご回答有難うございました。
- hallo-2007
- ベストアンサー率41% (888/2115)
関数で作業列いれるとわかりやすいかと 例えば A~D列に あ の文字含んでいるかの判断 E列にでも =COUNTIF(A1:D1,"*あ*") 下までコピィします。 >特定の文字が含まれている行以外を非表示にしたいです。 は、含まれる行を表示(含まれていない行を非表示)ですよね。 オートフィルターで E列が1以上を表示させては如何でしょうか。
お礼
ご回答有難うございました。
補足
ご回答有難うございます!! すみません、私以外の人も使うので できれば、ワンクリックで表示できるようなマクロが 組めたらと思っています。
お礼
ご回答有難うございました。
補足
有難うございます。。 やってみたのですが、(適当にaとかb等を入力し) 入力されている行がすべて非表示になってしまうような気がします。 If Not Rs Like "*" & Myname & "*" And Rs <> "" Then Rs.EntireRow.Hidden = True が読み解けないのですが・・・ もうちょっと頑張ってみます>< 本当にありがとうございます!