ここから本文です

エクセルVBAでセルの値が他のブックのシート内にあるか検索し、記録されていな...

anp********さん

2009/1/3116:51:47

エクセルVBAでセルの値が他のブックのシート内にあるか検索し、記録されていないようならばその番号
のセルの色を赤にしたいと考えています。どのようなプロシージャを記録すればいいかご存知の方教えて下さい。

A列に縦に並ぶ番号を一つ一つ別のシート内のA列に記録されているか
検索し、記録されていないときはその番号のセルの色を赤にしたいのです
が、いろいろ試してもうまくできませんでした。ご存じの方がいらっしゃったら
教えていただけないでしょうか?よろしくお願いします。

ちなみに元データは下記のとおりです。

〈シート1〉


BC150004 アカギ 50000 ・・・
BC250005 タケダ 60000 ・・・
CA150006 オダギ 25000 ・・・




〈シート2〉


BA150001 1 BA150001 サカモト ・・・
BA150002 1 BA150002 コウモト ・・・



シート1のA列の番号が検索したい番号。番号は8桁
で最初の2桁はアルファベット。シート1A列の番号数
はだいたい10~30くらいで不定です。シート2を検索
した結果記録されていないようならばシート1の該当の
番号のセルを色付けしたいのですが・・・。

シート2は番号を管理する台帳のようなものです。その
番号に関するデータはすべてそこに登録されていなければ
ならないため、シート1の番号がシート2にきちんと登録さ
れているかを確認したいんです。

閲覧数:
3,492
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

hiy********さん

2009/1/3117:12:05

標準モジュールに下記のように試してみてはいかがでしょうか。
このサンプルではSheet2のA列にSheet1のA列のそれぞれの
セルの値が存在するかワークシート関数のCOUNTIFを使用しています。
Dim c As Range
Dim Ws1 As Worksheet, Ws2 As Worksheet
Set Ws1 = Sheets("Sheet1")
Set Ws2 = Sheets("Sheet2")

For Each c In Ws1.Range("A1").Resize(Ws1.Range("A1").CurrentRegion.Rows.Count)
If WorksheetFunction.CountIf(Ws2.Columns(1), c.Value) = 0 Then
c.Interior.Color = vbRed
End If
Next

質問した人からのコメント

2009/2/3 06:31:16

hiyokosan_desさん素晴らしい回答をありがとうございます。
私が聞きたかったのはまさにこのことでした。初めての質問でしたのでわかりにくい点も多々あったことと思いますが
うまくくみ取っていただいてありがとうございました。大変助かりました!!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる