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

エクセルで、のセルをシングルクリックした場合など、セルの周りが四角く囲まれた状態になりますが、その状態のセルに色をつけたいのですが、可能でしょうか。(クリックしたときだけでなく、十字キーで選択セルをずらした際に赤色のセルが移り変わるようにしたいです。)

どなたか宜しくお願い致します。

A 回答 (7件)

すみません、確認漏れをしていました。


セルのみの場合は以下の数式を
=OR(CELL("row")=ROW(), CELL("col")=COLUMN())
以下のように変更してください。
=AND(CELL("row")=ROW(), CELL("col")=COLUMN())

OR → AND への変更となります。
    • good
    • 0

こちらの質問のNo.1の回答で、ご希望の結果が得られるはずです。


http://okwave.jp/qa2089225.html

条件付き書式を使っているのでもともと塗りつぶした色は保持されます。
ただ、その後の回答にもあるように、ファイルの内容によっては条件付き書式はそれなりの負荷がかかります。
あまり重くなるとクリックと色が変わるタイミングのずれが大きくなってしまうので気をつけてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

現在のところ、動作も軽く問題は解決しました。

追っての質問で申し訳ありませんが、今回教えていただいた方法は、そのセルの行列の表示が変わりますが、そのセルのみの表示を変えることも可能でしょうか?

よろしくお願いいたします。

お礼日時:2006/11/03 09:15

マクロが走ると画面がちらつくのが気になりますね。


ちょっと変えてみました。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range, SRng As Range
Set Rng = Range("C3:K20")
If Not Intersect(Target, Rng) Is Nothing Then
Set SRng = Selection
With Application
.ScreenUpdating = False
Sheets("damy").Range("C3:K20").Copy
.EnableEvents = False
Rng.PasteSpecial Paste:=xlPasteFormats
SRng.Select
SRng.Interior.ColorIndex = 3
.EnableEvents = True
.ScreenUpdating = True
End With
End If
Set Rng = Nothing
Set SRng = Nothing
End Sub
    • good
    • 0

> やはりマクロを有効とする範囲にその他の色の塗りつぶしを行うのは不可能なのでしょうか。



不可能ではありませんが一筋縄では行きませんね。

では、こうしましょうか。
新たにdamyという名前のシートを挿入します。
damyシートに、マクロを有効とする範囲(以下では"C3:K20")と同じ範囲を、対象シートの"C3:K20"と同じ書式にしておきます。要は控えをとっておくんです。

コードを以下に変えてください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range, SRng As Range
Set Rng = Range("C3:K20")
If Not Intersect(Target, Rng) Is Nothing Then
Set SRng = Selection
Sheets("damy").Range("C3:K20").Copy
Application.EnableEvents = False
Rng.PasteSpecial Paste:=xlPasteFormats
SRng.Select
Application.EnableEvents = True
With SRng.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
Set Rng = Nothing
Set SRng = Nothing
End Sub

いかがでしょう?
    • good
    • 0

puchipuriさんこんにちは、merlionXXです。



> 元々塗りつぶしを行っていた全てのセルの塗りつぶしが解除(白くなる)されますが・・・

それでしたら、セルの塗りつぶしが解除されていい範囲=クリックしたとき赤く変わる範囲 を設定することで解決できます。
仮にその範囲を C3:K20 とした場合、以下の記述となります。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
Set Rng = Range("C3:K20")
If Not Intersect(Target, Rng) Is Nothing Then
Rng.Interior.ColorIndex = xlNone
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
Set Rng = Nothing
End Sub
    • good
    • 0
この回答へのお礼

merlionXXさん、回答ありがとうございます。

範囲指定によりほぼ理想通りとなることが出来ましたが、やはりマクロを有効とする範囲にその他の色の塗りつぶしを行うのは不可能なのでしょうか。
といいますのは、元々記入間違いを防止するために1行置きに灰色の塗りつぶしを行っており、さらにその確立を減らすために、ハイパーリンクで飛んできたセルに赤色を表示させたかったのです。赤色に表示された後に灰色に戻るのは無理なのでしょうか。

何度も質問してしまい申し訳ありませんが、ご教示いただけますと幸いです。

お礼日時:2006/10/25 20:03

以下の手順でやってみてください。



1.対象とするシートのタブを右クリックし、「コードの表示」を選択。
2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。

'*****ここから下をコピペ*****

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub

'*****ここより上までをコピペ*****

3.Alt+F11キーでワークシートへもどります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご教示いただいた通りにマクロを実行したところ、問題なく動作しました。

追っての質問で申し訳ありませんが、ご教示頂いたマクロを実行すると、元々塗りつぶしを行っていた全てのセルの塗りつぶしが解除(白くなる)されますが、元々の設定を残したまま、このマクロを実行することは可能でしょうか。

宜しくお願い致します。

お礼日時:2006/10/23 13:37

上のバーか下のバーにペンキ缶の形をした「塗りつぶしの色」というアイコンがありませんか? これをクリックすれば、選んだセルに色をつけられます。

色を選ぶのは、すぐ右にある小さな下向き矢印です。

選択セルをずらしたときに自動的に色も変える方法というのは、わかりません。選択したセルに対してもう一度「塗りつぶしの色」アイコンをクリックすれば、同じように色はつきますけれど。
    • good
    • 0

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