gooドクター有料プランが1ヶ月間無料!

教えてください。

A列の値が特定の値以外の場合、
その行を行ごと削除する方法はありますでしょうか?
A列には、
1 タイトル
2 (ブランク)
3 a
4 a
5 b
6 b
7 c
8 c
9 d
10 d
~というふうに2000行辺りまで続きます

例えば、A列の3行目以降の値が b 以外の場合、
3・4・7・8・9・10行を行ごと削除する、ということです。

あまり説明が上手でなくて申し訳ありませんが、よろしくお願いします。

gooドクター

A 回答 (4件)

ではVBAのサンプルです。

コメントも入れておきました。

Sub test01()
With ActiveSheet 'アクティブなシートについて
x = .UsedRange.Cells(.UsedRange.Count).Row 'xに最終行を取得
For i = x To 3 Step -1 '最終行から3行目まで下から順に
If .Cells(i, 1) <> "b" Then .Rows(i).Delete 'A列が"b"でなかったら削除
Next '繰り返し
End With
End Sub
    • good
    • 4
この回答へのお礼

サンプル、ありがとうございました。

今回はこれを流用し、
さらに次回以降には応用してVBAを勉強して行こうと思います。

お礼日時:2007/04/05 16:00

マクロの組み方の基本はOKですか?



『指定文字列』以外であった場合のみ『削除』ということですよね?
順を追います。

1.A列の文字列を見る(上記の場合スタートは3行目から)
2.指定文字列以外『この場合"b"』であった場合削除
3.1、2を行数分ループする

この手順で組んで見てください。
分かりづらいかな^^;
    • good
    • 0
この回答へのお礼

基本は理解しているつもりですが、
できること・できないことの判断、及び基本の応用にいつも難儀しています。

再度のご回答、ありがとうございました。

お礼日時:2007/04/05 15:57

VBAでやる必要がないように思えます。


オートフィルタでA列をb以外の条件で選んだ物を削除するとか、逆にbのものを表示させてその分だけコピペで新しくシートを作るとか。
VBAでやらなければならない理由は何ですか?

この回答への補足

すみません、言葉足らずでしたね。

#1さんの推測されている通り、
ボタンを押すかマクロ一覧から処理を起動し他の多くの処理の一部として行を削除する必要が生じています。

補足日時:2007/04/05 13:00
    • good
    • 2

イメージ的には、エクセルシート上にボタンか何かを貼り付け、それを押下すると処理が走り、編集されるというイメージでよろしいでしょうか?



それであれば、下記URLを参考に自作マクロを活用してください。
マクロは覚えておくと色々と応用が利きますよ^^

参考URL:http://www2.odn.ne.jp/excel/waza/macro.html

この回答への補足

ご回答、ありがとうございます。

教えていただいたページに、
"A列に2が入力されていたらその行を削除(列見出しを除く)"というのがありました。
私はマクロ初心者なもので、
□2(マクロ内では変数を使用予定)以外の行を削除 ※列見出しは2行です
という応用がわかりません。

どのようにすればよろしいでしょうか?

補足日時:2007/04/05 13:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング