Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8950 / 13646 ツリー ←次へ | 前へ→

【30133】抽出後のCellの文字色変更と復活 mitu 05/10/20(木) 13:05 質問[未読]
【30138】Re:抽出後のCellの文字色変更と復活 Jaka 05/10/20(木) 15:35 回答[未読]
【30139】Re:抽出後のCellの文字色変更と復活 micnak 05/10/20(木) 15:44 回答[未読]
【30157】Re:抽出後のCellの文字色変更と復活 mitu 05/10/20(木) 20:00 お礼[未読]

【30133】抽出後のCellの文字色変更と復活
質問  mitu  - 05/10/20(木) 13:05 -

引用なし
パスワード
   セルの文字色が異なるシートの中身をAutoFilterで抽出した際、抽出されたセルの文字の色をある色に統一し、
抽出を解除した際には、セルの文字を元の色に戻したいのです。

抽出されたセルを、一括してRangeAとしてくくり、そのRangeAをFor〜Next文で取り出して、ColorIndexを記憶し、抽出を解除する直前に元の色に戻せたらと思うのですが、具体的な方法を教えてください。

【30138】Re:抽出後のCellの文字色変更と復活
回答  Jaka  - 05/10/20(木) 15:35 -

引用なし
パスワード
   オートフィルタ解除イベントは要されて内容なので、代用。
97だとどこかに=A1でいいから、関数が使われていないと反応しませんでした。

Private Sub Worksheet_Calculate()
If Sheets("Sheet1").AutoFilterMode = True Then
  MsgBox "フィルタ状態"
Else
  MsgBox "フィルタ解除"
End If
End Sub

フィルタした時のアドレスをどこかに保存しておく必要がありますね。
セルの色づけは、参考にしてください。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=29231;id=excel

【30139】Re:抽出後のCellの文字色変更と復活
回答  micnak  - 05/10/20(木) 15:44 -

引用なし
パスワード
   -非表示のシート("書式退避シート"とする)を用意しておいて、
  書式退避シート.Cells.PasteSpecial (xlPasteFormats)

-フィルタをかける
-range.SpecialCells (xlCellTypeVisible) を使用して色をつける

-作業する

-フィルタをはずす
-書式を書き戻す
  書式退避シート.Cells.Copy
  Cells.Cells.PasteSpecial (xlPasteFormats)

==========
という感じでどうでしょうか。

【30157】Re:抽出後のCellの文字色変更と復活
お礼  mitu  - 05/10/20(木) 20:00 -

引用なし
パスワード
   jakaさん micnakさん 早速のご教授ありがとうございました。

抽出前のシートの書式を別のシートにコピペしておく。
抽出直前にシートのフォントの色を統一しておく。
抽出する。

抽出を解除する。
あらかじめコピーしておいた別のシートの書式を抽出を解除したシートにコピペする。

以上で目的を達することができました。
ありがとうこざいました。

8950 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free