ここから質問投稿すると、最大10000ポイント当たる!!!! >>

何だかお世話になりっぱなしで、申し訳ない感じなのですが、またよろしく御願いします。

シート1の1行目と、シート2の1行目を比較して、同じ数字があればそのセルに色をつけるということはできますでしょうか。
同じく2行目以降も、シート1とシート2の同じ行を比較していき、同じ数字があればセルに色を付けていくようにしたいと思ってます。
<例>
シート1の1行目
「1」「2」「3」「4」「5」
と各セルに入っているとします。(セルには数字のみ入っています)

シート2の1行目
「4」「5」「9」「10」「15」
と入っていた場合、「4」「5」のセルのみに色を付けると言うことです。

シート1,2の各行のセルに記入されている数字は、あらかじめ決まっている数字ではなく、あとで付け足していきます。
ですが、シート1とシート2で比較する行は同一であり、シート1の5行目であれば、シート2の5行目と比較。



ネットでいろいろと調べてみたのですが、特定の数字があった場合にセルに色をつけるというものはありましたが、私が思っているようなことはできないようでした。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

#4です。


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
i = Target.Row
For j = 1 To 10
For k = 1 To 10
If Sheet1.Cells(i, j) = "" Then Exit For
If Sheet1.Cells(i, j) = Sheet2.Cells(i, k) Then
Sheet1.Cells(i, j).Interior.Color = RGB(255, 222, 0)
End If
Next k
Next j
End Sub
済みません朝の時間がないので、十分テストできません。
SelectionChangeイベントは使うのが怖いのですが、それ以外が思いつかなくて。
    • good
    • 0

例えば10列(A-J列)をチェックするとして


下記で良いと思います。
ただ行、列数が多くなると時間がかかるかもしれません。
Sub test01()
d = Sheet1.Range("a1").CurrentRegion.Rows.Count
For i = 1 To d
For j = 1 To 10
For k = 1 To 10
If Sheet1.Cells(i, j) = Sheet2.Cells(i, k) Then
Sheet1.Cells(i, j).Interior.Color = RGB(255, 222, 0)
End If
Next k
Next j
Next i
End Sub
セルに色をつけていますが、RGB値は適当にセットしてください。
    • good
    • 0
この回答へのお礼

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

思うような処理ができました(^^)
あと1つ質問なんですが、この処理をいつもアクティブな状態にするには、どのようにしたら良いでしょうか。

新しく数値が入力されるたびに、自動的に比較してセルに色を付けれたらいいな、と思っています。
いろいろと調べてみましたが、ユーザー定義関数を自動再計算する方法はあったのですが、この場合はユーザー定義関数を使用していないので、その方法も使えないですし。

あと少しアドバイスを頂けると助かります。

よろしく御願いします。

お礼日時:2003/05/16 00:06

例えばシート1のA1からG1に参照する数値が入っているとすると


シート2の使用していないセル(比較するすぐ下のセル)A1に
=LOOKUP(A1,Sheet2!$A$1:$G$1)
と入力して、シート2のA1からG1にコピーします。
シート2のA1に条件付書式を設定します。
「セルの値が」「次の値に等しい」「=A2」とし、書式の設定。後は、式を入力したセルを非表示にする。
この場合、参照するセルの値を必ず並べ替えで順番に並べ替えておかないと駄目です。(配列を使用しているためですのであしからず。)
    • good
    • 0
この回答へのお礼

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

別シートの参照方法は、「「=Sheet1!A1」」を使用すれば簡単に出来そうです。

ですが、個別にセルを参照するにはLOOKUP関数を使用した方がよさそうですね。

アドバイスして頂き、有難うございます。

お礼日時:2003/05/16 00:22

こんにちは。

maruru01です。

Excel2000の場合ですが、
条件付き書式では、別のシートを参照することが出来ないので、そのままでは無理です。
方法としては、シート2のどこか使用しないところにシート1の値をリンクします。
例えば、シート2のO~S列にシート1のA~E列をリンクします。
(O1に「=Sheet1!A1」と入力して右・下へコピー)
そしたら、シート2のA~E列を範囲選択して、メニューの[書式]→[条件付き書式]で、

「数式が」
「=AND(LEN(A1)<>0,COUNTIF($O1:$S1,A1)>0)」

と設定して、書式を設定します。

これ以外の方法だと、VBAを使用するしかないと思われます。
    • good
    • 0
この回答へのお礼

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

シート1の値を、比較するシートの方にリンクした方が良いのですね。
先程、この方法で試してみたら思うように処理させることができました。

後は「=AND(LEN(A1)<>0,COUNTIF($O1:$S1,A1)>0)」が何を意味しているのか、調べてみるだけです。

良く「A1」と出てきますが、これはR列の1行目ということでしょうか。

エクセルは奥が深いですね。
勉強してみます。

お礼日時:2003/05/16 00:18

ソフト名とバージョンが書いてないので適当な解答ができません。



ちなみにEXCELの2002であればメニューの書式から条件付書式で可能ですが・・・・
    • good
    • 0
この回答へのお礼

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

ソフト名はエクセル98でした。
今後はソフト名をバージョンを記述するようにします。

バージョンが違うと、使えない関数やVBAはあるのでしょうか?
まだまだ勉強不足の私ですが、また御質問させて頂くことがあると思いますが、その時はよろしく御願いします。

お礼日時:2003/05/16 00:26

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング