みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

色で判別するよりも、入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。

投稿日時 - 2013-04-14 02:50:37

QNo.8041956

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2013-04-14 11:45:32

お礼

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

投稿日時 - 2013-04-14 12:12:38

ANo.2

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

投稿日時 - 2013-04-14 10:25:22

補足

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

投稿日時 - 2013-04-14 12:41:47

お礼

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

投稿日時 - 2013-04-14 12:08:35

ANo.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

投稿日時 - 2013-04-14 07:48:41

お礼

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

投稿日時 - 2013-04-14 09:39:54

あなたにオススメの質問