- ベストアンサー
エクセルで、、、
エクセルで特定の文字列を含む行だけを 削除したいのですが、やりかたがわかりません。 エクセル 特定 文字 削除 で調べているのですが、 お願いします。
- Judau_MSZ-010
- お礼率78% (891/1128)
- オフィス系ソフト
- 回答数4
- ありがとう数4
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問数:249回 / 回答数:12回 ならわかるだろうに・・ 「エクセル 特定 文字 削除 で調べている」 のですが・・(みつからないなら・・「検索しろ」)と調べ方・検索のしかたとして キーワードにマクロ、VBAを加えて 「エクセル 特定 文字 削除 マクロ VBA で検索しろ」と教えてくれていると推察することができる・・。 Sub 指定の文字列を含む行だけを削除() 指定の文字列 = InputBox("どの文字列を含む行を削除するんだ?") Do While Not ActiveSheet.UsedRange.Find(指定の文字列) Is Nothing ActiveSheet.UsedRange.Find(指定の文字列).EntireRow.Delete Shift:=xlUp Loop End Sub
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
、、、投稿しようかと思ったら、#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
お礼
ありがとうございます。
- katayama19
- ベストアンサー率58% (10/17)
1.\データ\フィルタ\オートフィルタ を選択します。 2.リスト上部に表示された三角ボタンをクリックし、オプションを選択します。 3.抽出条件で、”特定の文字”を書き込み、右のリストボックスで”を含まない”を選択します。 4.フィルタがかけられて、、”特定の文字”を含まない行だけが表示されますので、表示されたセル範囲(シート全体とか行全体ではない)を選択しコピーします。 5.別のシートに貼り付けてやれば、、、”特定の文字”を含まない行だけのデータベースの出来上がりです。 一番手っ取り早いのでは?
- RZ350R
- ベストアンサー率28% (439/1551)
エクセル 特定 文字 削除 キーワードにマクロ、VBAを加えてください。 マクロの記録でも動作するはずです。(実行時間についてはご自分でチューニングしてください)
お礼
ありがとうございます。
補足
ありがとうございます。 言っている意味がよくわかりません、、、 お願いします。
関連する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です) 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます。