• ベストアンサー

エクセルで、元の色が残るよう、ポインタのある行と全てに着色する方法

以前こちらで、エクセルで、ポインタのある行全てに着色するコードを見させていただいて、とても勉強になりました。 自分でも使ってみましたが、もともとセルに色がついていた場合、ポインタを動かしていくと そのセルの元の色が消えてしまいます。 行選択で色がついても、ポインタを動かせば、元のセルの色も残るようにしたいのですが… そのようなことが可能でしょうか?お分かりになる方いらっしゃいましたら、教えてください。 よろしくお願いいたします!

質問者が選んだベストアンサー

  • ベストアンサー
  • takibo
  • ベストアンサー率57% (116/200)
回答No.2

以前、magdaraさんのご希望の内容の質問に回答しました。(私は No.3 です) http://okweb.jp/kotaeru.php3?q=1539615 こちらの質問のようにすれば色付けしたセルの設定は変わりません。 条件付き書式を解除すれば行ハイライトもなくなります。

magdara
質問者

お礼

遅れましたが有難うございました!条件付書式を憶えるいい機会になりそうです。 思ったとおりの成果ですし、とても勉強になりました。ありがとうございました!

magdara
質問者

補足

教えていただいたページにありましたが、条件付書式というのは、ファイルが結構重くなるのでしょうか? VBAだけでも重くなるように感じるんですが… 職場マシンはスペックが良くないのでちょっと気になりました

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1です。 >これが止める仕掛けのことかと思いますが、 違います。 #1はブレーキのない自動車のようなところがあります。 どこまで行っても、クリックする行に色がついてきます。うっとうしいはずです。不要になるタイミングというものがあるはずです。 名案はないですが、セルかボタン、チェックボックスでも作って、質問の効果を抑止する、モード切替的な考えが必要ではないかと、はじめから思ってました。イベントブロシージュアーの最初にチェックボックスなどの値を聞き、プロシージュアーを素通りするかどうか判別すればよい。 閉じた場合も最後の指定行に着色が残る問題ですが 閉じるときには、ファイルクローズのイベントが発生するが、そこへ最後の行数を引き渡すのが難しい。Public変数にでもしますか。 私の言うようにした場合に、機能オフモードのとき、人手で解除ぐらいしか考え付きません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

実用になるかどうか、まあお遊びのつもりで。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static mr Dim c(256) r = Target.Row For j = 1 To 10 '---- ' MsgBox Cells(r, j).Interior.ColorIndex If mr <> "" Then ' MsgBox mr If Cells(mr, j).Interior.ColorIndex = 8 Then Cells(mr, j).Interior.ColorIndex = -4142 Else End If End If '---- If Cells(r, j).Interior.ColorIndex = -4142 Then Cells(r, j).Interior.ColorIndex = 8 Else End If '--- Next j mr = r End Sub For j = 1 To 10 (今はJ列まで)を For j = 1 To 255 にすればポイントして指定した行の全列のセルにいろ付けになります。 Cells(r, j).Interior.ColorIndex = 8 はライトブルーですが、淡い色のColorIndexを調べて、好きな色のコードにしてください。 止める仕掛けがいりますね。今回は略。

magdara
質問者

お礼

ありがとうございます!書いていただくと「なるほど!」と思えますが、自分では初心者なので中々考え付きません悲しいですが。。早速試させていただきますね。 あと、止める仕掛けというのは…? とりあえずやってみます。

magdara
質問者

補足

やってみたところ、思ったとおりの成果でした。ありがとうございます! ところでファイルを閉じてまた開くと、前回終了したときの列選択の着色が残ったままになります。 これが止める仕掛けのことかと思いますが、自分なりに色々やってみましたがうまくいきません… 良かったらまたご教授お願いいたします(_ _)