• ベストアンサー

VBAについての質問です

コマンドボタンを押すと、2行目の値(B2,C2)を元に、シート名「A」の中の②という値を消すという様なVBAコードを教えてもらいたいです。 なかなかうまく動かなくて困っております。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.1

以下で試してみてください。 Sub Test() Dim mRng As Range For Each mRng In Sheets(Range("B2").Value).UsedRange 'もしくは範囲指定でSheets(Range("B2").Value).Range("A1:F10")とか If mRng.Value = Range("C2").Value Then mRng.ClearContents End If Next End Sub

advantage123
質問者

お礼

できなくてすごい悩んでいました。 教えていただきまして本当にありがとうございました。

Powered by GRATICA
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.3

回答No.1No.2の補足です。 ボタンは質問の画像の表があるシートにあるとしたコードですのでボタンが別のシートにあるのでしたら Range("B2")とRange("C2") は質問の画像の表があるシートを指定してください。 Sheet1でしたら Sheets("Sheet1").Range("B2") Sheets("Sheet1").Range("C2") とかです

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

回答No.1の追加です。 値が含まれていたらその値だけを消す場合は Sub Test2() Dim mRng As Range For Each mRng In Sheets(Range("B2").Value).UsedRange 'もしくは範囲指定でSheets(Range("B2").Value).Range("A1:F10")とか If mRng.Value Like "*" & Range("C2").Value & "*" Then mRng.Value = Replace(mRng.Value, Range("C2").Value, "") End If Next End Sub 値が含まれていたらそのセルの内容を全て消す場合は Sub Test3() Dim mRng As Range For Each mRng In Sheets(Range("B2").Value).UsedRange 'もしくは範囲指定でSheets(Range("B2").Value).Range("A1:F10")とか If mRng.Value Like "*" & Range("C2").Value & "*" Then mRng.ClearContents End If Next End Sub

すると、全ての回答が全文表示されます。

関連するQ&A