人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBA 特定の文字を含む行を複数選択したい


エクセルVBAにてお願いします。
A列に特定の文字が入っているのですが、

最終行から検索して、A列にその文字が入っていると、
その行すべてを選択するというマクロをお願いします。


文字は仮に「商品」とします。


いろいろと調べたのですが削除するものは多くみつかりましたが、
複数選択するだけのマクロがなかなか見つかりませんでした。

改造しても、最後の1つだけ選択されしまうものなど。(それはダメです)

複数選択したままの状態になるようなマクロを
どうかよろしくお願いいたします。

※私は全然スキルがないのですが、ある方には楽勝かと思いますので、
早めにできた方2名様までのポイント割り振りとさせていただきます。

●質問者: naranara19
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● セガビ
●150ポイント ベストアンサー

手元のExcel 2013で試してみましたが、次の手順でできそうです。
VBAにする場合は、マクロの記録を使って手順を記録させてください。

1.対象の表全体を選択して、「データ」タブの「フィルター」でフィルターを適用します。

2.A列のフィルターの「▼」を選んで、「テキスト フィルター」の「指定の値を含む…」で条件を「商品」として、A列に商品を含むものだけ表示します。

3.その状態で最初の行を選択し、「Shift」を押しながらと最後の行を選択して、全体を選択します。(この状態でフィルターをクリアしても、見えなくなっている部分が選択されてしまうので次の4の手順が必要です。)

4.「ホーム」タブの「検索と選択」の「条件を選択してジャンプ…」を選び、「可視セル」を選択します。(この4.の操作は「Alt」+「;」でもできます。)

5.A列のフィルターの「▼」を選んで、「"(列A)"からフィルターをクリア」を選びます。

これで該当行だけが選択された状態になるかと思います。


セガビさんのコメント
マクロの記録でVBAにする場合、1箇所修正が必要でした。 仮に表全体がA1:B15だった場合、記録すると次のようなVBAのコードができますが、手順の4に相当する部分だけは修正が必要です。以下の★の部分です。これをやらないと、先頭部分や末尾部分が選択から漏れてしまいますのでご注意ください。 >|basic| Sub Macro1() ' ' Macro1 Macro ' Range("A1:B15").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$B$15").AutoFilter Field:=1, Criteria1:="=*商品*", _ Operator:=xlAnd Rows("2:15").Select '★先頭行と最終行になるように書き換えてください! Selection.SpecialCells(xlCellTypeVisible).Select ActiveSheet.Range("$A$1:$B$15").AutoFilter Field:=1 End Sub ||<

naranara19さんのコメント
ありがとうございます!両方の方法まで書いてくださって、感謝いたします!無事動きました!大変助かりました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ