- 締切済み
エクセル 特定のセルを残して一括削除
エクセル2003で勤務シフト表を作成します。 表内のセルには、色(複数色)のついたセルや数字、記号などが入ります。 この表を何度も使いまわすのですが、 範囲を選択し、データをクリア(表はのこして白の空白)する時に一定のセル、たとえばピンクの色のついた数値または記号のセルだけを残して一括クリアしたいのです。 セルのロック書式設定とシートの保護は何度も試してみましたが上手くいきません。削除するとみな消えます。保護中はロック以外のセルもエラー表示で何も出来なくなります。 マクロ機能だと出来るのですが、これはピンクのセルが固定されている場合のみです。 ピンク(数値・記号)がどのセルに変わろうと、残る方法が知りたいのです。何か良い方法があれば教えて下さい。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
もう少し質問の記述を整理して (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/HA011101991041.aspx で説明されていること などを使うことを考えるべきと思います。
- merlionXX
- ベストアンサー率48% (1930/4007)
> マクロ機能だと出来るのですが、これはピンクのセルが固定されている場合のみです。 以下を試してみてください。 選択範囲内での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
お礼
ありがとうございました。 もっと簡単に出来るものだと思っていました。 基本から勉強します。
お礼
勉強不足で質問し申し訳ありませんでした。 基本を勉強してみます。