- ベストアンサー
エクセル2000で、表の中の同じ値のあるセル地番を表示させたいのですが?
表の中の同じ値のあるセル地番を表示させたいのですが、どうすれば良いのですか ?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
同じような質問がありました。 『どういう式を使うのか?教えてください!』http://www.okweb.ne.jp/kotaeru.php3?q=177971 出来上がった表に対して、同じ値に色を付ける方法です。 >セル地番を表示させたいのですが この『表示』をどう実現すればいいのか質問からははっきりしませんが、『入力したセルと同一値のセル』に色を付けてみました。 下の例では、表をセル範囲A1:C10として同一値があればセルに色を付けています。 範囲と色(コードの『***』がある箇所)は実状に合うように修正して下さい。 セルのアドレスを出力することも可能ですね。 Sheet1で行う例です。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、表示→プロジェクトエクスプローラ でプロジェクトエクスプローラを表示し、そこのSheet1をダブルクリックし出てきたコードウインドウに下記マクロを貼り付けます。 Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim rg As Range 'セル Dim checkFlg As Boolean '同一値があったか Dim checkRg As Range 'チェックする表番地 Set checkRg = Range("A1:C10") '*** チェックする表の範囲をセットする Const myColorIndex = 36 '*** 色のインデックス(好きな番号にする) On Error GoTo ErrorHandler 'エラーが発生した場合は何もしない '入力が1つのセルに対して行われた場合 If Target.Count = 1 Then '表の中に入力してなければ何もしない If Intersect(checkRg, Target) Is Nothing Then Exit Sub End If '入力されている範囲を調べる For Each rg In checkRg If Val(rg) = Val(Target) Then '値が一致していたら If rg.Address <> Target.Address Then '値が一致して別のセルなら色を塗る rg.Interior.ColorIndex = myColorIndex '同一値があった! checkFlg = True Else '自分だったら色を塗らない rg.Interior.ColorIndex = xlNone End If Else '値が違っていれば塗らない rg.Interior.ColorIndex = xlNone End If Next End If If checkFlg Then '値が一致したセルが有れば自分を塗る Target.Interior.ColorIndex = myColorIndex End If Exit Sub ErrorHandler: End Sub
その他の回答 (1)
- kougasha
- ベストアンサー率32% (34/105)
MATCH関数、INDEX関数とかを調べて見てはいかが?
補足
お返事ありがとうございます。 MATCH関数、INDEX関数を調べてみたのですが、違うような気がします。 例えば、 A 1 1 2 7 3 3 4 1 5 2 6 1 とあるとします。 A1に1が入るとすると、1と同じ値のあるセルはA4とA6 です。 このA4とA6を導き出すような関数、又は仕方があれば教えてほしいのです。 よろしくお願いします。