• ベストアンサー

エクセル 複数の条件付き書式について

お世話になります。 条件付き書式で、 【数式】が【=MOD(B12,100000000)=$*$*】 の関数(下8桁の数字を抜き出す)を使い数値を抜き出したいのですが、設定数が30コあります。 VBAを使わないと4つ以上設定できないそうなので教えて下さい。VBAは初心者です。 表でいいますと… ↓抜き出したい数字元       A       B      … J 番号1  12345678  45678901   78901234 番号2  23456789  56789012   89012345 番号3  34567890  67890123   90123456 ↓照会したい数字の範囲 条件付き書式範囲 B12:J31 です。 よろしくお願いします。m(_ _)m

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

  • ベストアンサー
noname#192382
noname#192382
回答No.3

No1です。あなたの場合プログラムを次のようにしたらよいと思います。テストしてみてください。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2006/2/20 ユーザー名 : ' Dim rl As Integer, cl As Integer, rd As Integer, cd As Integer, rs As Integer, rr As Integer, cc As Integer Dim test As Integer, test2 As Integer, r As Integer, c As Integer For r = 1 To 3 For c =1 To 10 For rr = 12 To  31 For cc = 2 To 10 test = Right(Cells(rr, cc),8) If test = Cells(r, c) Then rt = rr + 25 Cells(rt, cc) = Cells(r, c) End If Next cc Next rr Next c Next r ' end sub

kyabe2-
質問者

お礼

できました! 親切に教えて下さり、ありがとうございましたm(_ _)m

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

この質問は(1)条件付き書式の質問か (2)検索・抽出の質問か(#1の補足要求に対し「その通りです」) どちらですか。 条件付書式は検索的色彩はあるとは思うが、別物です。 ーーーー 質問例でA列にある数に当たるものはピンク色、B列にある数に当たる場合はグリーンとか30種色の設定色があるということですか。 それにしてはA-jの10列しかないし。 ーーーーー 質問例のAーJの指定している数が30個あるということなら、「4つ以上設定できないそうなので」とは関係ないはず。書式の色が4種以上は設定できないだけではないですか。 ーーーー こういう例を考えてみました。 関数には複数列を検索する関数がないようなので 標準モジュールに、ユーザー関数 Function xfind(a) Dim cl As Range For Each cl In Worksheets("Sheet1").Range("h2:j4") If cl = a Then xfind = True Exit Function End If Next xfind = False End Function を作る。 --- H2:J4に 12 75 3 34 23 56 54 75 92 をいれ、下2桁が上記の場合、セルにグリーンの色をつける。 ---- A2:A12を範囲指定して 条件付き書式で数式がで =xfind(MOD(A2,100)) と入れる。 A2:A12のデータが 156 345 567 789 345 334 567 888 478 908 903 の時、156、334、903がグリーンになります。 テストデータ作成の簡単のため数を3桁、指定数を2桁にしてますが、こういうパターンでよいでしょうか。

kyabe2-
質問者

お礼

こちらも試してみました! 大変参考になりました。本当にありがとうございました!

noname#192382
noname#192382
回答No.2

No1です。早速回答いただきうれしく思います。こちらで例示のためにやってみましたので送ります。こちらはえくせる97で幼稚なことしかできません。計算の条件はご覧になればすぐお分かりになると思います。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2006/2/20 ユーザー名 : ' Dim rl As Integer, cl As Integer, rd As Integer, cd As Integer, rs As Integer, rr As Integer, cc As Integer Dim test As Integer, test2 As Integer, r As Integer, c As Integer rl = 3 cl = 2 rd = 4 cd = 3 rs = 11 re = rs + rd - 1 For r = 1 To rl For c = 1 To cl For rr = 12 To 15 For cc = 1 To cd test = Right(Cells(rr, cc), 2) If test = Cells(r, c) Then rt = rr + 10 Cells(rt, cc) = Cells(r, c) End If Next cc Next rr Next c Next r ' End Sub 上の表と中の表が与えられている。 中の表の数の下2桁が上の表のどれかに該当する場合、下の表にその数を示した。 25 52 45 85 57 55 15456 21548 54855 14552 65855 54857 54845 95425 65425 84557 45428 54896 54855 14552 65855 54857 54845 95425 65425 84557

noname#192382
noname#192382
回答No.1

質問の内容がわからないのでおたずねします。 180個のデータの中で下8桁が30個のデータのいずれかに該当する数を抽出するということでしょうか。

kyabe2-
質問者

補足

お返事ありがとうございます。 質問内容が的確ではなく、申し訳ございませんでした。 optimumsoup様のおっしゃる通りです。 よろしくお願いします。

関連するQ&A