• ベストアンサー

VBAでの選択範囲内の削除方法。

Excel2003でVBAを使っています。 まず、VBAである範囲(例えば、A1からK20)を指定した後、その範囲内にある値の中で、aaaとbbb以外の値のセルを空白セルにしたいのですが、どのようにしたらよいのでしょうか? aaaとbbbの入っているセルを空白セルにする場合と、aaaとbbb以外の値が入っているセルを空白セルにする方法を教えてください。 宜しくお願いします。

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.2

こんにちは。 範囲選択もコードでする場合 --------------------------------------------- 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 などとする 以上です。  

RRHH
質問者

お礼

この方法が、私の知りたかったものズバリです。 分かりやすくて、とても助かりました。 本当に有難うございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

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を空白にできます。それら以外を空白にすることができませんが。

RRHH
質問者

お礼

こんな方法もあるんですね。 今回は、aaaとbbb以外のセルを空白にする方が重要だったので今回は使いませんが、いろいろな方法を知っていた方が、何かの時に使えると思います。 とても助かります。有難うございました。

  • Traja
  • ベストアンサー率19% (107/546)
回答No.1

自分で動作確認していません。 そのものズバリでもありません。 1.rangeオブジェクトで範囲を指定し 2.For Each文で、単一のセルを順に特定し 3.セルの値を判定し、然るべき処理を行う といった手順になろうかと思いますが この辺をヘルプを使い試行してみてください。

RRHH
質問者

お礼

この手順は、なんとなく分かっていたのですが、でも、何を使えばいいのか分からなかったのです。 >2.For Each文で、単一のセルを順に特定し For Eachですね。調べてみます。 有難うございました。

関連するQ&A