- ベストアンサー
VBAでの選択範囲内の削除方法。
Excel2003でVBAを使っています。 まず、VBAである範囲(例えば、A1からK20)を指定した後、その範囲内にある値の中で、aaaとbbb以外の値のセルを空白セルにしたいのですが、どのようにしたらよいのでしょうか? aaaとbbbの入っているセルを空白セルにする場合と、aaaとbbb以外の値が入っているセルを空白セルにする方法を教えてください。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 範囲選択もコードでする場合 --------------------------------------------- Sub Test01() Dim Rng As Range For Each Rng In Range("A1:K20") If Rng.Value = "aaa" Or Rng.Value = "bbb" Then Rng.Value = "" End If Next Rng End Sub --------------------------------------------- 範囲選択を手動でした場合は For Each Rng In Range("A1:K20") を For Each Rng In Selection とする ---------------------------------------------- また、aaa,bbb以外の時は If Rng.Value = "aaa" Or Rng.Value = "bbb" Then Else Rng.Value = "" End If などとする 以上です。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
IF判別の方がよいかもしれないが、Findを使う方法をやってみました。いつか参考になるでしょう。 Sub test02() Worksheets("sheet2").Activate Set a = Range("a1:k20").Find("aaa") If a Is Nothing Then Exit Sub a.Value = "" a.Activate While Not a Is Nothing Set a = Range("a1:k20").FindNext(ActiveCell) If a Is Nothing Then Exit Sub a.Value = "" a.Activate Wend End Sub aaa,bbb を配列に入れて繰り回せば、aaaかbbbを空白にできます。それら以外を空白にすることができませんが。
お礼
こんな方法もあるんですね。 今回は、aaaとbbb以外のセルを空白にする方が重要だったので今回は使いませんが、いろいろな方法を知っていた方が、何かの時に使えると思います。 とても助かります。有難うございました。
- Traja
- ベストアンサー率19% (107/546)
自分で動作確認していません。 そのものズバリでもありません。 1.rangeオブジェクトで範囲を指定し 2.For Each文で、単一のセルを順に特定し 3.セルの値を判定し、然るべき処理を行う といった手順になろうかと思いますが この辺をヘルプを使い試行してみてください。
お礼
この手順は、なんとなく分かっていたのですが、でも、何を使えばいいのか分からなかったのです。 >2.For Each文で、単一のセルを順に特定し For Eachですね。調べてみます。 有難うございました。
お礼
この方法が、私の知りたかったものズバリです。 分かりやすくて、とても助かりました。 本当に有難うございました。