プロが教える店舗&オフィスのセキュリティ対策術

エクセル2003で勤務シフト表を作成します。
表内のセルには、色(複数色)のついたセルや数字、記号などが入ります。

この表を何度も使いまわすのですが、
範囲を選択し、データをクリア(表はのこして白の空白)する時に一定のセル、たとえばピンクの色のついた数値または記号のセルだけを残して一括クリアしたいのです。

セルのロック書式設定とシートの保護は何度も試してみましたが上手くいきません。削除するとみな消えます。保護中はロック以外のセルもエラー表示で何も出来なくなります。

マクロ機能だと出来るのですが、これはピンクのセルが固定されている場合のみです。

ピンク(数値・記号)がどのセルに変わろうと、残る方法が知りたいのです。何か良い方法があれば教えて下さい。
よろしくお願いします。

A 回答 (2件)

> マクロ機能だと出来るのですが、これはピンクのセルが固定されている場合のみです。



以下を試してみてください。
選択範囲内でのColorIndex が 7(ピンク)以外のセルのみクリアするサンプルです。

Sub test01()
Dim c As Range
If TypeName(Selection) <> "Range" Then
MsgBox "セルが選択されていません。"
Exit Sub
End If
For Each c In Selection
If c.Interior.ColorIndex <> 7 Then
c.ClearContents
End If
Next
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
もっと簡単に出来るものだと思っていました。
基本から勉強します。

お礼日時:2008/07/13 22:58

もう少し質問の記述を整理して


(1)残すセルの場合、消すセルの場合に分けて、それぞれの「セルの値」や{式」の状況
(2)書式についての状況
を箇条書き的に整理して記述できないですか。

自分でやった方法で達成できなかった方法は参考までにに後部に付け加えるだけでよい。
ーー
>マクロ機能だと出来るのですが、これはピンクのセルが固定されている場合のみです
これはコードを増やすとか、少し変えることで対応可能と思う。質問者が断定するほどVBAに自信あるのですか。
ColorIndexで設定している場合のセル探索
Sub test01()
For Each cl In Range("a1:D8")
If cl.Interior.ColorIndex <> -4142 Then
MsgBox cl.Address & " " & cl.Interior.ColorIndex
End If
Next
End Sub
==
根本的に
(エクセルの)テンプレート
スタイル
http://office.microsoft.com/ja-jp/excel/HA011101 …
で説明されていること
などを使うことを考えるべきと思います。
    • good
    • 0
この回答へのお礼

勉強不足で質問し申し訳ありませんでした。
基本を勉強してみます。

お礼日時:2008/07/13 22:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています