• ベストアンサー

エクセルで、、、

エクセルで特定の文字列を含む行だけを 削除したいのですが、やりかたがわかりません。 エクセル 特定 文字 削除 で調べているのですが、 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • at121
  • ベストアンサー率41% (85/206)
回答No.3

質問数:249回 / 回答数:12回 ならわかるだろうに・・ 「エクセル 特定 文字 削除 で調べている」  のですが・・(みつからないなら・・「検索しろ」)と調べ方・検索のしかたとして キーワードにマクロ、VBAを加えて  「エクセル 特定 文字 削除 マクロ VBA で検索しろ」と教えてくれていると推察することができる・・。 Sub 指定の文字列を含む行だけを削除() 指定の文字列 = InputBox("どの文字列を含む行を削除するんだ?") Do While Not ActiveSheet.UsedRange.Find(指定の文字列) Is Nothing ActiveSheet.UsedRange.Find(指定の文字列).EntireRow.Delete Shift:=xlUp Loop End Sub

Judau_MSZ-010
質問者

お礼

ありがとうございます。

その他の回答 (3)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

、、、投稿しようかと思ったら、#3 at121 さんのコードをみてビックリボーゼンです。短く、効率的で、、、下記のような最近オーバースペック気味のコードをシコシコ書いてばかりでしたから、衝撃的でした(^^;)。悔い改めます。 一応、もったいないので、アップします。 急ぎで作りましたので、コード内にコメントはほとんどありません。 検索したいセルを選択した状態で実行してみて下さい。 マクロの貼り付け方とかは、、、申し訳ないですが、ご自分でお調べください。 余談ですが、、 自作関数:GetCellRange は検索語を含むセルオブジェクトを返します。 完全一致・部分一致の使い分けも、第3引数で設定できます。 応用すれば、検索語を含むセルにさまざまな処理をほどこすコードが書けます。 'SAMPLE MACRO Sub キーワードを含む列全体を削除()   Dim strKeyWrd As String   Dim TargetCell As Range   Dim Res As Integer       strKeyWrd = InputBox( _     "検索語を含む列全体を削除します。", "検索語を入力して下さい")   If strKeyWrd <> "" Then     Set TargetCell = GetCellRange(strKeyWrd, Selection, False)     If TargetCell Is Nothing Then       MsgBox "検索語は見つかりませんでした", vbInformation, "終了"       GoTo ExitHandler     Else       TargetCell.EntireRow.Select       Res = MsgBox( _       "現在選択された行を削除します。よろしいですか?", _       vbExclamation + vbOKCancel + vbDefaultButton2, "削除確認")       If Res = vbOK Then         Selection.Delete Shift:=xlUp       End If     End If   End If       ExitHandler:   Set TargetCell = Nothing End Sub '指定セル範囲からキーワードを探し、そのセルオブジェクトを返す Function GetCellRange( _   strSearchKey As String, _   rngSearchArea As Range, _   Optional SearchType As Boolean) As Variant 'Range   Dim rngBuf As Range   Dim CurrentCell As Range   Dim flag As Boolean      flag = False   On Error Resume Next   For Each CurrentCell In rngSearchArea     Select Case SearchType       Case Is = True         '完全一致         If StrComp(CurrentCell.Value, strSearchKey) = 0 Then           flag = True         End If       Case Is = False         '部分一致         If InStr(1, CurrentCell.Value, strSearchKey) > 0 Then           flag = True         End If     End Select     If flag And Not IsEmpty(CurrentCell) Then       If rngBuf Is Nothing Then         Set rngBuf = CurrentCell       Else         Set rngBuf = Union(rngBuf, CurrentCell)       End If       flag = False     End If   Next CurrentCell   Set GetCellRange = rngBuf End Function

Judau_MSZ-010
質問者

お礼

ありがとうございます。

回答No.2

1.\データ\フィルタ\オートフィルタ を選択します。 2.リスト上部に表示された三角ボタンをクリックし、オプションを選択します。 3.抽出条件で、”特定の文字”を書き込み、右のリストボックスで”を含まない”を選択します。 4.フィルタがかけられて、、”特定の文字”を含まない行だけが表示されますので、表示されたセル範囲(シート全体とか行全体ではない)を選択しコピーします。 5.別のシートに貼り付けてやれば、、、”特定の文字”を含まない行だけのデータベースの出来上がりです。 一番手っ取り早いのでは?

  • RZ350R
  • ベストアンサー率28% (439/1551)
回答No.1

エクセル 特定 文字 削除 キーワードにマクロ、VBAを加えてください。 マクロの記録でも動作するはずです。(実行時間についてはご自分でチューニングしてください)

Judau_MSZ-010
質問者

お礼

ありがとうございます。

Judau_MSZ-010
質問者

補足

ありがとうございます。 言っている意味がよくわかりません、、、 お願いします。

関連するQ&A

  • エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法

    エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法 表題のとおりですが、エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法について教えてください。 特定の文字(C列にあります)が含まれている行から5行下の先ほどとは違う文字(これもC列にあります)までを削除したいのです。 それがたくさんあり大変困っております。 エクセルを起動してマクロの記録を行い手作業で5回削除し記録終了としたのですが、 5回以上削除したい場合は操作が行われませんでした。 これをマクロで行うにはどういう式を作ればいいでしょうか? 宜しくお願いします。

  • エクセルで特定の行を削除したい

    こんにちは。 エクセルである列に特定の文字列がある場合にその行ごと削除するにはどうすれば良いでしょうか。 よろしくお願いします。

  • エクセルで特定の行を削除したいのですが。

    エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか? 宜しくお願いいたします。

  • エクセルVBAで特定の文字を含まない行を削除する

    エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。 ” りんご ”がB列だけにしかない場合は作成できたのですが、 ” りんご ”がB列とC列にも含まれていて どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。 教えてください。 

  • エクセル2003での置換について教えてください。

    エクセル2003での置換について教えてください。 こんにちは いつもお世話になっています エクセル2003での置換について教えてください。 特定の文字列以降の文字列を(特定文字列自身も含めて)削除したいのです。  特定の文字列は二つあります。【@】と【変化】です(【】も含みます)。  この二つの文字列はバラバラに出てきます。一方だけがでてくるセル、両方出てくるセル、両方出てこないセル、があるという意味です。  「*」を各特定文字の後ろに付けて、置換機能で削除していますが、二つの文字列に対して別々にやっています。 これを一度で置換して削除する方法を教えてください。  よろしくお願いします。

  • エクセルでのデータの抽出

    エクセル2007で教えていただきたいのですが、a1からc1セルに特定の文字列が 入っていてa2からc2セルにも特定の文字列が入っています。 行1に入っている文字列が「あ」で、且つ行2に入っている文字列が「い」を満たす、 その下の行3に入っている数値の合計は、どうすれば求められるでしょうか。 ご教授お願い致します。

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

  • エクセルで特定の文字列が入った行を非表示にしたい

    エクセル(97)で特定の列のセルに特定の文字列が入った行を非表示にする機能はありますでしょうか? 例えばC列の3行目以降から「無し」という文字列が入ったらその行を非表示にしたいのですが・・・

  • Excelで不特定の文字列を削除したいのですが可能

    Excelで不特定の文字列を削除したいのですが可能でしょうか? たとえば 何行にも渡り下記のような文字列がある場合、 0.4331"直径 x 0.9843"厚さ / 11 直径 x 2.5 厚さ[mm] 0.9252"直径 x 0.1378"厚さ / 23.5 直径 x 3.5 厚さ[mm] 右側の式の直径の前の数字だけ残し、他は削除し、 1行目の場合は 11 だけを 2行目の場合は 23.5 だけを また、別に右側の式の厚さ[mm]の前の数字だけ残し、他は削除し、 1行目の場合は 2.5 だけを 2行目の場合は 3.5 だけを 残したいのです。 結果的に下記のような表を作りたいのです。 ---------------------------    列A  |   列B    |   ---------------------------    11   |    2.5    |   ---------------------------    23.5  |   3.5    |   --------------------------- 簡単にする方法はありませんでしょうか? Excel初心者です。よろしくお願いします。

  • エクセルで30万行から特定の行を削除したいのですが。

    エクセルで30万行から特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロを使うのでしょうか? また、マクロを使う場合、どの位時間がかかりますでしょうか?行数が30万行ありますので。(PCのスペックは、Core2Duo 1.40GHz/メモリ3GBです) 宜しくお願いいたします。

専門家に質問してみよう