• 締切済み

Excel VBA 決まった文字以外を一括削除

勤務表を作成しています。 赤いセル「/。」は、希望休です。 勤務表の組み直しを行うため、希望休以外を一括で削除して空白にしたいのですが、そのようなマクロを組む事はできますか? 色で判別するよりも、入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。

みんなの回答

回答No.3

特定文字のセルを除いた、選択された範囲の罫線以外をクリアしたい??

kokosu525
質問者

お礼

はい。 色は条件付き書式で設定してあるので、空白にすれば白くなります。「/。」以外の文字だけ消すだけです。 1日目の隣には、スタッフの氏名が入力されています。 勤務の下のセルには、イベントなどの文章をいれますので、決められた範囲だけを対象にして文字を消したいです。

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

kokosu525さん 次のコードで対応できるかと思います。 ご確認下さい。   Sub クリアー()  Dim セル As Range  For Each セル In Rows("3:" & Rows.Count).SpecialCells(xlCellTypeConstants)   If セル <> "/。" Then セル.MergeArea.ClearContents  Next End Sub

kokosu525
質問者

お礼

すごい! 見事に消えていきました!

kokosu525
質問者

補足

J5:AN13の範囲だけを対象範囲にして削除したいです。 この範囲以外は、スタッフ氏名や行事などの入力がされていますので消したくないです。

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.1

kokosu525さん こんにちは。 以下のプログラムでできるかと思います。 ただ条件としては、日や曜日は1,2行目として3行目以降対応しています。 また、処理するシートはActive(表示)しているシートです。 お試し下さい。 Sub クリアー()  Dim セル As Range   For Each セル In Rows("3:" & Rows.Count).SpecialCells(xlCellTypeConstants)    If セル <> "/。" Then セル.ClearContents  Next End Sub

kokosu525
質問者

お礼

回答、ありがとうございます。 さっそく試してみました。 ただ、エラーになってしまいました。 私の説明不足で、表の下に、結合したセルがあり行事などの記載があります。結合したセルが影響してエラーになってしまうようです。

関連するQ&A