【エクセルVBA】必要な文字列を指定して他の不要行を一括で削除するマクロ(コピペ可)

この記事は約4分で読めます。

 

複雑な表の中から必要な文字列だけを残して、他は削除するマクロがほしい!って思ったことないでしょうか。

 

もちろん標準機能のフィルター機能でも同様の効果が得られるですが、今回紹介したいのは、

 

 

  ✓ 文字列の種類が多すぎてフィルターで選択する作業がめんどう!

 

  ✓ 文字列が特定できているので他の行は全削除でよい!

 

 

こんな要望がある人向けです。

 

行を削除VBA

 

通常、繰り返しの処理をセルに与えてしまうとひどく時間がかかってしまうので、本VBAコードでは不要な行をまとめて選択させておいて、一気に削除する方法を取っています。

 

そのため、数百数千行の表であってもサクッと処理を完了させることができる優れモノです

 

 



 

 

指定シートの不要行を一括で削除し、さらに高速化

 

不要行を削除するVBAコード

 

 

基本はコピペで使えますが、処理を開始する行の位置や、ワークシートの名称は変更する必要があります。

 

難しいことはまったくないです。

イメージと合わせて変更箇所を説明します。

 

 

 

コピペで使用する場合の変更箇所

 

変更が必要な箇所をマークして示します。

 

 

少し見づらいですが全部で6箇所、書き換える必要があります。

ピックアップして詳細を説明していきます。

 

 



 

 

要変更箇所のピックアップと説明

 

まずは、ワークシートの名称を指定してあげます。

これで対象のワークシートが決まります。

 

 

続いて、セルの範囲です。

上図の例ではB4~C100の範囲を選択しています。

表の範囲が多い場合は、すべて選択してあげてください。

 

 

次に対象が何列目にあるかを記入します。

下図のとおりです。

 

 

最後に、残したい対象の文字列を記入します。

下図の例では3行目の”さる”を見つけて、それ以外の行を削除するようにしています。

 

 

以上です。

これでマクロを実行すると、指定した文字列以外の行を削除することができます。

 

行を削除VBA

 

 

 

行を削除して不可逆なので、対象のsheetをコピーしてくるVBAと相性が良い

 

sheetコピーVBAのイメージ

 

毎回マクロボタンを作成するのが面倒なので、データを読み込んでくるシートを事前に準備しておきましょうという趣旨です。

 

準備しておきましょうと言っても、マクロボタンを一つこしらえておくのみ。

 

① データを読み込むマクロボタンを押し、

② 不要行を削除するマクロボタンで必要な行のみ残す

 

といった手順です。

 

 

 

瞬時にデータをもってきて、瞬時に必要な行だけ残す。

とっても効率的ですね!

業務効率化にもお役に立てると思います。

 

 

 

 

PVアクセスランキング にほんブログ村

 



 

コメント

タイトルとURLをコピーしました