-PR-
解決済み

エクセル2000マクロで行を削除したいのですが

  • すぐに回答を!
  • 質問No.85731
  • 閲覧数124
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 44% (55/123)

エクセル2000で、社員台帳から特定の人物だけ削除しようと思いマクロを
組んだのですが、どうもうまくいきません。
社員には全員00から99の2桁のコードがついています。(列Aにあります)
2桁のコードが00の人物だけ削除したいのですが。
次のようなマクロを組んだのですが、どこがおかしいのでしょうか?
とりあえず、20行程度処理しようと思います。
Range("A2").Select
For Each セル In Range("A2:A20")
If セル = "00" Then Selection.EntireRow.Delete
Next
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル11

ベストアンサー率 49% (139/279)

>それから、End If の部分でエラーで落ちました。「End If に対する If がない」
>というメッセージでした???

これは、うちでは、再現しません。
再度ご確認を

>と、いう訳で、00のコードを持つ社員が複数名おり、かつ連続して出てくる
>可能性があります。

A2とA3が00の場合、A2が00なので、A2の行を削除しま
すが、このため、A3だったセルはA2になってしまうの
で元A3であるA2の00は処理されないことになってしま
います。
という訳で、やはり後ろからやらないと駄目だと思い
ます。

Dim y As Long
For y = 20 To 2 Step -1
With Cells(y, 1)
If .Value = "00" Then
.EntireRow.Delete
End If
End With
Next
補足コメント
ariga

お礼率 44% (55/123)

End If でエラーが発生する件につきましては、私の記述誤りでした。
記述後に、きちんとデバッグすればよかったんですね。
大変に失礼致しました。
投稿日時 - 2001-06-06 08:27:12
お礼コメント
ariga

お礼率 44% (55/123)

たいへん、うまくいきました。ありがとうございました。また、お礼が遅くなってしまって、すいません。
投稿日時 - 2001-06-22 17:39:41
関連するQ&A
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル11

ベストアンサー率 49% (139/279)

Selection.EntireRow.Deleteに問題があります。 選択されている行を削除しますから、A2のある2行目 が削除されてしまいます。 For Each セル In Range("A2:A20") If セル = "00" Then セル.EntireRow.Delete ...続きを読む
Selection.EntireRow.Deleteに問題があります。
選択されている行を削除しますから、A2のある2行目
が削除されてしまいます。

For Each セル In Range("A2:A20")
If セル = "00" Then
セル.EntireRow.Delete
End If
Next

こんな、感じでどうでしょう。
なお、社員台帳と言うことで、00の人が2回出てくる
ことはないと思いますが、連続で00が出てくると2つ
目の00は削除されませんので、ご注意ください。
(後ろから検査したほうがいいと思います。)
補足コメント
ariga

お礼率 44% (55/123)

arataさん、いろいろとありがとうございます。
実は、この2桁のコードは社員固有のIDではないのです。
(書き忘れてすいません)
と、いう訳で、00のコードを持つ社員が複数名おり、かつ連続して出てくる
可能性があります。
それから、End If の部分でエラーで落ちました。「End If に対する If がない」
というメッセージでした???
投稿日時 - 2001-06-05 16:29:15


  • 回答No.2
レベル12

ベストアンサー率 51% (254/492)

こんにちは  以下のページがご参考になるのでは? 【エクセル技道場】-マクロ-行の削除 http://www2.odn.ne.jp/excel/waza/macro.html#SEC6 ...続きを読む
こんにちは

 以下のページがご参考になるのでは?

【エクセル技道場】-マクロ-行の削除
http://www2.odn.ne.jp/excel/waza/macro.html#SEC6
  • 回答No.4
レベル11

ベストアンサー率 42% (91/216)

リスト内を選択して「データ」-「フィルタ」「オートフィルタ」をクリック。 A列に▼が出来るのでそれをクリックして「00」を選択すると「00」のものだけが 抽出されます。 別の列をキーにして絞り込むなりして行削除すれば良いのでは? (A2を選択してCtrl+Shift+Endで抽出した範囲を選択して右クリック行削除) ↑が出来るのであればマクロの記録でこの手順を記録すればマクロになります。 ...続きを読む
リスト内を選択して「データ」-「フィルタ」「オートフィルタ」をクリック。
A列に▼が出来るのでそれをクリックして「00」を選択すると「00」のものだけが
抽出されます。
別の列をキーにして絞り込むなりして行削除すれば良いのでは?
(A2を選択してCtrl+Shift+Endで抽出した範囲を選択して右クリック行削除)

↑が出来るのであればマクロの記録でこの手順を記録すればマクロになります。

99のときなら99に変えてマクロを作れば良いのでは?
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ