アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

アクティブセルだけ背景色を変えたいと思っています。

以下のサイトを読んで、こちらのコードを利用して
アクティブセルの背景色を変えています。
http://www.excel.studio-kazu.jp/kw/2014102311340

このコードは素晴らしくて、よく利用しています。
ですが1つ困ったことがあります。

それはこのコードに

Cells.Interior.ColorIndex = xlNone

が含まれているため、シート上の全てのセルの背景色が
キャンセルされて、塗りつぶしなしの状態になってしまいます。

可能なら、先に背景色を設定したセルは既存の背景色を残したまま、
アクティブセルの背景色だけを変えることが出来るのなら、
活用してみたいと思っています。

もし、そんなことが可能でしたらマクロでも通常の設定でも構いませんので、
設定やコードを教えて下さい。

お手数ですが、詳しい方、説明の上手な方、よろしくお願いします。

追記
シート上でアクティブセルの場所だけ、わかれば良いので、
以下のように書き換えたところ一瞬、セルに背景色が表示されてから
シート全体の背景色がクリアされてしまいました。

このパターンで一瞬だけアクティブセルに背景色を表示して、
すぐに背景色(アクティブセルの)が既存の設定に戻る、、、というのでもいいです。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Target(1).Interior.ColorIndex = 6
Cells.Interior.ColorIndex = xlNone
End Sub

※すいませんが、お礼、返信、etc.は遅くなると思います。

A 回答 (1件)

こんばんは!



>シート上の全てのセルの背景色が
キャンセルされて・・・

セルの塗りつぶしは手動で行っているのでしょうかね?
もし可能であれば
条件付き書式で塗りつぶされているセルの色は通常のマクロでは消えません。

ただこれではお望みの方法ではないと思いますので
一案です。
どこか使っていないセルに選択セルのアドレスを退避させておいて
そのセル番地を利用する方法はどうでしょうか?

仮にアクティブシートのZ1が使っていないセルだとして

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim myAd As String
  On Error Resume Next '//←念のため//
   With Target
    myAd = .Address(False, False)
     If Range("Z1") = "" Then
      Range("Z1") = myAd
      .Interior.ColorIndex = 6
     Else
      myAd = Range("Z1")
       Range(myAd).Interior.ColorIndex = xlNone
       .Interior.ColorIndex = 6
       Range("Z1") = .Address(False, False)
     End If
   End With
End Sub

※ 列全体とか、行全体を選択すると
エラーになるかもしれません。m(_ _)m
    • good
    • 1
この回答へのお礼

ありがとう

解答して頂きありがとうございます

お礼が遅くなりすいません。

>もし可能であれば
条件付き書式で塗りつぶされているセルの色は通常のマクロでは消えません。

これは知りませんでした。
関数が入っているセルなので、条件付き書式で
次の値に等しくない、空白、で対応しました。
助かりました。

>セルの塗りつぶしは手動で行っているのでしょうかね?

気にされていたのは、これですね。
条件付き書式を設定して背景色をつける場合は問題がないけれど
マクロを貼りつけたら、セルに新規で背景色を設定(手作業で)できなくなる、
ということですね。

シート上で新規に背景色を設定することはないので(多分)、今回はこれで大丈夫です。

あと、このコードのキモはZ1にアドレスが入るので、
Z1は空白にしておくように、ということですね。

いつも解答して頂きありがとうございます。
機会があれば、またお願いします。


追記
表が大きかったり、セルが細かい時にアクティブセルがどこにあるのか
目立たせるために背景色を流し込むというのは
よくあるパターンのようですね。

自分の忘備録として、今回、参考にさせて頂いたURLを貼りつけておきます。

アクティブセルのみ色をつけたい
※最初に貼り間違えたコード
http://www.excel.studio-kazu.jp/kw/2014102311340 …

アクティブセルのみ色をつけたい
- すでに背景色があるセルにカーソルが乗った時に別の背景色を表示する
https://oshiete.goo.ne.jp/qa/10646516.html

私はベストアンサーのNo.5さんの数式を条件付き書式に貼りつけることが出来ませんでした。
No.4さん(このページではNo.1さん)、あなたはやっぱりスゴイです。

色を設定するには(ColorIndex、Color)
- マクロで色を変える時の12ケタの色コードの対応リスト
http://excel.style-mods.net/topic11.htm

お礼日時:2019/02/09 12:11

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

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


このQ&Aを見た人がよく見るQ&A