こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

A1の値が「僕だよ」ならアクティブセルの行に色付け

エクセル条件付き書式について質問です。
エクセルで商品の在庫管理をしています。A列には商品コードが書いてあります。
賞味期限ごとに行を作っているので、同じ商品コードがA列に複数あるものもあります。
なので、すべてのセルに下記のような条件付き書式を設定し、なにかセルを選んだ際、選んだセルと同じ商品の行には全て色がつくようにしました。

=INDIRECT("A"&ROW())=INDIRECT("A"&CELL("row"))


これでうまくいくようにはなったのですが、この便利な設定を僕をいじめる人には使わせたくないと思っております。

よって、これに追加条件として、『セルA1の値が「僕だよ」のときのみ』というのを付けたいのですが、

=AND($A$1="僕だよ",INDIRECT("A"&ROW())=INDIRECT("A"&CELL("row"))
で試したところ色がつかなかったので、正しい方法を教えていただきたいと思います。

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

投稿日時 - 2012-06-20 07:49:13

QNo.7544099

困ってます

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

条件付き書式の数式を
=CELL("ROW")=($A$1="僕だよ")*ROW()
に変更する

シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに

private sub worksheet_selectionchange(byval Target as excel.range)
application.screenupdating = true
end sub

と記述する。

投稿日時 - 2012-06-20 10:35:26

補足

keithin様、お世話になっております。

この度はベストアンサーをありがとうございました。

あれから考えまして、美しさに欠けますが、条件付き書式を二つ作ることでやっていけそうな気がしております。

一個目
=$A$1<>"僕だよ"
ならば書式設定なし


二個目
=($A$1="僕だよ")*INDIRECT("A"&CELL("ROW"))=INDIRECT("A"&ROW())
ならばセルを塗りつぶす。


もしもっと美しい方法をご存知であればぜひともご一報ください。


かしこ。

投稿日時 - 2012-06-20 14:45:05

お礼

ありがとうございます。すばらしい発想ですね!!!

すごく参考になっています。しかし、まだうまくいきません。

教えていただいた式を参考にさせていただき、安易に

=INDIRECT("A"&CELL("ROW"))=($A$1="僕だよ")*INDIRECT("A"&ROW())

としてみました。


でもこれだと、A1に「僕だよ」と入力していない場合も、他のセルに色がついてしまいました。


もう少し頑張ってみます。




やりたいことは、
セルか何かにパスワードを入れると、簡単に、秘密の条件付き書式が設定されるといったことです。
そして、その秘密の条件付き書式が設定されていることは、できるだけ仲間以外にはバラしたくないのです。

秘密の条件付き書式というのは
=INDIRECT("A"&ROW())=INDIRECT("A"&CELL("ROW"))がトゥルーならばセルの色を…
といったものです。

ぜひともよろしくお願いいたします。

投稿日時 - 2012-06-20 14:15:07

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

マクロを使わなければできませんね。
使おうとしているシート見出しを右クリックして「コードの表示」を選択します。
表示の画面の右の窓には次のコードを入力します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
If Range("A1") = "僕だよ" Then
Application.ScreenUpdating = False
Cells.Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
For i = 2 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("A:A"), Cells(i, 1)) > 1 And Cells(i, 1) = Cells(Target.Row, 1).Value Then
Range(Cells(i, 1), Cells(i, 20)).Interior.ColorIndex = 3
End If
Next
Range("A1").Select
Application.ScreenUpdating = True
End If
End Sub

A1セルに僕だよと入力してからどこかのセルでダブルクリックをすることでそれと同じ商品コードの行には赤色が表示されます。
作業が終わって赤色の表示を無くす場合には関係のないセルでダブルクリックをします。その後にA1セルの文字を消去すればよいでしょう。

投稿日時 - 2012-06-20 11:14:56

お礼

とてもはやい回答ありがとうございます。
さっそく試させていただきました。
申し訳ありません。
条件付き書式で色付けしたい理由として、
「もともとついているセルの色を消したくない…」というのがあります。
貴重なお時間を割いていただいたのに、私の説明不足のせいで、、、大変申し訳ないです。ごめんなさい。

投稿日時 - 2012-06-20 13:16:51

あなたにオススメの質問