Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11317 / 13644 ツリー ←次へ | 前へ→

【16718】教えてください! 法律事務所 04/8/6(金) 22:18 質問[未読]
【16719】Re:教えてください! Asaki 04/8/6(金) 23:11 回答[未読]
【16740】Re:教えてください! 法律事務所 04/8/7(土) 20:21 質問[未読]
【16761】Re:教えてください! Asaki 04/8/9(月) 9:22 回答[未読]

【16718】教えてください!
質問  法律事務所  - 04/8/6(金) 22:18 -

引用なし
パスワード
   教えて下さい。

データ−を処理する際にA列にある単語が入っていたら、それを削除したい
というマクロを組みたいのですが、毎日その言葉が入っている場所が不規則の
為、記録マクロですと対応できません。
Selection.autoFilter
Selection.AutoFilter Field:=1="=*証明*",Operator:=xlAnd
Rows("140:500").Select
Selection.DeleteShift=xlUp
上は、A列に証明という言葉があった場合、列を消すという記録マクロですが、
違う日付のデータ−ですと、列140行以降が全部消えてしまいます。
これをどう直せばいいのか、アドバイスを頂きたいのです。
よろしくお願いします。

【16719】Re:教えてください!
回答  Asaki  - 04/8/6(金) 23:11 -

引用なし
パスワード
   こんばんは。

>違う日付のデータ−ですと、列140行以降が全部消えてしまいます。
レイアウトや運用方法などがわかりませんので、↑の意味がよく判りませんが、
とりあえず、A列で「証明」の文字がある行を削除します。
データは1行目がタイトル、2行目からデータと仮定し、
アクティブなシートに対して処理を行います。

Sub test()
  With ActiveSheet
    .AutoFilterMode = False
    .Cells(1, 1).AutoFilter Field:=1, Criteria1:="=*証明*", Operator:=xlAnd
    With .AutoFilter.Range
      .Resize(.Rows.Count - 1).Offset(1).EntireRow.Delete Shift:=xlUp
    End With
    .AutoFilterMode = False
  End With
End Sub

【16740】Re:教えてください!
質問  法律事務所  - 04/8/7(土) 20:21 -

引用なし
パスワード
   ▼Asaki さん:
お返事本当にありがとうございます。
もし、どなたでもおわかりになる方でしたら、教えてください。

1.毎日あるシステムから3000行くらいのデータ−を落としてきて、Aの列に
該当する言葉がある場合、それを削除していく作業を自動化したいのです。
その際、A列に該当する言葉がたくさんある場合、以下に頂いたマクロを
繰り返していけばいいのでしょうか?
2.違うシートにマクロを組んでおいて、毎日ある一定の名前のシートでダウンロードした
データ−を作業するマクロを見たい場合、With ActiveSheetのところに
Windows("シート名.xls").Activateを入れれば大丈夫でしょうか?
よろしくお願いします。

>Sub test()
>  With ActiveSheet
>    .AutoFilterMode = False
>    .Cells(1, 1).AutoFilter Field:=1, Criteria1:="=*証明*", Operator:=xlAnd
>    With .AutoFilter.Range
>      .Resize(.Rows.Count - 1).Offset(1).EntireRow.Delete Shift:=xlUp
>    End With
>    .AutoFilterMode = False
>  End With
>End Sub

【16761】Re:教えてください!
回答  Asaki  - 04/8/9(月) 9:22 -

引用なし
パスワード
   >A列に該当する言葉がたくさんある場合、以下に頂いたマクロを繰り返していけばいいのでしょうか?
オートフィルタを利用する場合は、2つまでしか設定できませんので、基本的には、そうすることになると思います。
もしくは、フィルタオプションが利用できるかもしれません。
あるいは、考え方を変えて、最終データから1件ずつループして、指定の文字に該当するデータを削除していくなど。

>2.違うシートにマクロを組んでおいて、毎日ある一定の名前のシートでダウンロードした
>データ−を作業するマクロを見たい場合、With ActiveSheetのところに
>Windows("シート名.xls").Activateを入れれば大丈夫でしょうか?
お使いの用語が正確でないので、どうしたいのか良く分かりませんが、

違う「ブック」にマクロを入れておいた場合は、
Windows("処理するブック名.xls").Activate
Windows("処理するブック名.xls").Worksheets("処理するシート名").Activate

違う「シート」にマクロを入れておいた場合は、
Worksheets("処理するシート名").Activate

でよいかと思います。

11317 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free