- 締切済み
行の削除
列Kに、削除という文字が入っている場合は、その行を削除するということで、3000行くらいあるなかで3分の2程度は削除する行に該当します。 下のマクロで試してみましたが、このマクロではとっても時間がかかってしまうんですが、どうしたら早く処理できるのか教えて下さい。 Dim R As Range Do Set R = ActiveSheet.Range("K:K").Find(What:="削除", LookAt:=xlWhole) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop
- couleur33
- お礼率100% (28/28)
- その他(ソフトウェア)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
マクロの質問ですが、ここでは手作業でやる方法を書きます。 1. 列を追加(ここではL列とします)して1から連番を入れる 2. K列で並べ替え 3. 削除の行が連続するのでまとめて選択 4. 選択行を削除 5. L列(連番を入れた列)で並べ替え 削除後、元の並び順に戻す必要がないなら1と5は不要。 それほど手間とは思えないけど、やっぱりVBAじゃないとだめなのかな?手元のPCでExcelが使えないので、マクロに関する回答は他の方にお任せします。
関連するQ&A
- 特定文がある行を削除
特定分がある行を削除しようと思い、以下のように設定いたしました。 Sub DelLines() Dim R As Range Do Set R = ActiveSheet.Range("A:A").Find(What:="指定文", LookAt:=xlWhole) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub これを、全てのシートに適用するにはどのように書けばよろしいのでしょうか?
- ベストアンサー
- Excel(エクセル)
- 特定文字列を含む行を削除するマクロ
すみませんどなたか教えてください。 エクセルで商品の在庫管理をしておりまして、AP列に製品メーカー名が入っているのですが、 いくつかの(数十個)メーカーを省き削除したく思い、以下のようなマクロをググって作ってみましたが、 上手く動きませんでした。 1つのメーカーだけ記載した場合はうまく動きました。 やりたいことは1つのマクロの中に、数十個のメーカー名を記入しておき、そのメーカーを全件 検索して、AP列に文字列が含まれる場合は、その行を削除したいです。 宜しくお願い致します。 ~~~~~~ Sub DelLines1() Dim R As Range Do Set R = ActiveSheet.Range("AP:AP").Find(What:="softbank", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop Sub DelLines2() Dim R As Range Do Set R = ActiveSheet.Range("AP:AP").Find(What:="docomo", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop Sub DelLines3() Dim R As Range Do Set R = ActiveSheet.Range("AP:AP").Find(What:="au", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub
- ベストアンサー
- Excel(エクセル)
- エクセルで特定の行をマクロで削除したい。
Sub DelLines() Dim R As Range Do Set R = ActiveSheet.Range("A:A").Find(What:="ここにキーワード", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub 上記のソースだと一つのキーワードだけなのですが、複数のキーワードを追加したいのとブック全体(複数のシートから検索)で実行させたいのですが教えていただけませんか?
- ベストアンサー
- オフィス系ソフト
- タイトル名で複数列を取得し、その列を削除するマクロ
1行目にタイトル名があり、タイトル名で複数列を取得し、その列を削除するマクロを作成したいです。 いろいろ調べ、下記のコードを試し、1つの列は削除可能でしたが、 複数となるとどのようになるのか分からず・・どなたかお教えいただければ助かります。 以下は「たんぽぽ」のみですが、1行目に花の名前が多数並んでおり、「たんぽぽ」「バラ」「百合」…を一緒に削除したいです。 Dim R As Range Do Set R = ActiveSheet.Range("A:ZZ").Find(What:="たんぽぽ", LookAt:=xlWhole) If R Is Nothing Then Exit Sub R.EntireColumn.Delete Shift:=xlToLeft Loop
- ベストアンサー
- オフィス系ソフト
- エクセルで特定の行を削除(特定文字が複数)
http://okwave.jp/qa/q2692757.html に後述のマクロが紹介されていますが、 特定の文字が、"XXX"以外に、複数ある場合はどのようにすればよいか教えてください。 "XXX" and/or "YYY" and/or "ZZZ" の例で教えていただけませんか。 Sub DelLines() Dim R As Range Do Set R = ActiveSheet.Range("B:B").Find(What:="XXX", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルについて
ある表より特定の文字が入力されている行を削除したいと考えております。過去を参照し下記のようなマクロを取り入れたいと思いました。 Sub macro1() Dim R As Range Do Set R = ActiveSheet.Range("F:F").Find(What:="削除したい文字列", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub ここで質問です。F列に削除したい文字列がいくつかある場合上記をどのように改良すればよいでしょうか。ご教示の程よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセル VBA
Dim h As Range If Application.CountIf(Range("p:p"), 5) = 0 Then Exit Sub Set h = Range("p:p").Find(what:=5, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious) Range(Range("p2"), h).EntireRow.Delete Shift:=xlShiftUp 上記のマクロは、「2行目から、P列の数値が5の最下の行までを削除する」という内容です。 この5の部分を、<0(0未満)に変えたいのですがわかりません。 どうぞ教えてください。
- 締切済み
- オフィス系ソフト
- Excel2000マクロ_検索値以外の行削除をしたい。
全てのシートに対して、B2からB列の最終行までの値が 50の倍数(MAX600迄で0を含む)以外の行を削除したいのですが 下記のマクロだと逆に残したい行を消してしまいます。 この場合は、どの様なコードを書いた方が良いのでしょうか? 宜しくお願いします。 Sub 行削除() Dim trow As Range Do Set trow = Range("B").Find(What:=50, LookIn:=xlValues) If trow Is Nothing Then Exit Sub Rows(trow.Row).Delete Loop End Sub
- ベストアンサー
- オフィス系ソフト
- どうして、VBA動作後に固まるのですか?
Windows XP Home Edition Excel 2002 変更前は、全く問題なく動作しましたが、 下記のように1行だけ変更しただけで動作後に固まってしまいます。 このようなことは初めてなのですが、 何卒、ご教授お願い致します。 Sub 動作後に固まる() '注意 Dim c As Range Do Set c = Range("A:A").Find(what:="No 01", LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then Exit Do 'c.Offset(-1, 0).Resize(3, 1).EntireRow.Delete '変更前 c.Offset(1, 0).FormulaR1C1 = "固まる" 'この1行だけこのように変更しただけです Loop End Sub
- ベストアンサー
- オフィス系ソフト
- 指定行の削除の方法
全くの初心者です ご教授願います ユーザーフォーム6のテキストボックスに入力された 文字と同じもののある行を削除するようにしたいです (コードは、インターネットから借りてきて、必要と思われるところを修正しました) 実行すると、「オブジェクトは、このプロパティに対応していません」 と表示されてしまいます。 何の事を言っているのか、わかりません 教えていただきたいです。 よろしくお願いします Sub CommandButton1_Click() Dim 削除氏名 As Range Set 削除氏名 = Cells.Find(What:=userform6.TextBox1, LookIn:=xlValues, LookAt:=xlWhole) If Not 削除氏名 Is Nothing Then 削除氏名.EntireColumn.Delete = True End If End Sub
- ベストアンサー
- Visual Basic
お礼
オートフィルタでなんとかやってみました。 ありがとうございました。