
お世話になります。
アクティブセルだけ背景色を変えたいと思っています。
以下のサイトを読んで、こちらのコードを利用して
アクティブセルの背景色を変えています。
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.は遅くなると思います。
No.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
解答して頂きありがとうございます
お礼が遅くなりすいません。
>もし可能であれば
条件付き書式で塗りつぶされているセルの色は通常のマクロでは消えません。
↓
これは知りませんでした。
関数が入っているセルなので、条件付き書式で
次の値に等しくない、空白、で対応しました。
助かりました。
>セルの塗りつぶしは手動で行っているのでしょうかね?
↓
気にされていたのは、これですね。
条件付き書式を設定して背景色をつける場合は問題がないけれど
マクロを貼りつけたら、セルに新規で背景色を設定(手作業で)できなくなる、
ということですね。
シート上で新規に背景色を設定することはないので(多分)、今回はこれで大丈夫です。
あと、このコードのキモは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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA:フォーム←→セルのア...
-
vbaで指定したセルより下の行を...
-
Excelマクロ セルを行頭に移動
-
エクセルでセルをクリックする...
-
エクセルマクロで「セルのサイ...
-
excel マクロでの特殊文字入力方法
-
VBA Rangeの足し算
-
VBAでの SendKeysの変数指定方法
-
IF関数で違う値もTRUEになる
-
(エクセルVBA)セルを左クリッ...
-
Excel VBA で色付きのセルの値...
-
【VBA】アクティブセルだけ背景...
-
Excelでプルダウンからフィルタ...
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
VBA シートをコピーする際に Co...
-
【Excel関数】UNIQUE関数で"0"...
-
VBAマクロ実行時エラーの修正に...
-
Worksheets メソッドは失敗しま...
-
Excel UserForm の表示位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
VBAでの SendKeysの変数指定方法
-
Excelマクロ セルを行頭に移動
-
エクセルでセルをクリックする...
-
マクロのデータ削除
-
エクセルマクロで「セルのサイ...
-
Excel VBA:フォーム←→セルのア...
-
(エクセルVBA)セルを左クリッ...
-
セルをクリックしたら色を変え...
-
excel マクロでの特殊文字入力方法
-
Excel VBA で色付きのセルの値...
-
VBA Rangeの足し算
-
IF関数で違う値もTRUEになる
-
【マクロ】1つのセルから結合...
-
ファイルサーバー上のexcelファ...
-
結合セル内の値を、結合解除後...
-
【EXCEL-VBA】特定の値の入った...
-
ロックされていないセル内をクリア
-
ダブルクリックでセルに色をつ...
-
VBA ボタンをセルの右側に合わ...
おすすめ情報