プロが教えるわが家の防犯対策術!

お世話になります。

条件付き書式で、
【数式】が【=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

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

A 回答 (4件)

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/21 08:10

この質問は(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に
12753
342356
547592
をいれ、下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桁にしてますが、こういうパターンでよいでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/21 08:11

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桁が上の表のどれかに該当する場合、下の表にその数を示した。

2552
4585
5755








154562154854855
145526585554857
548459542565425
845574542854896






54855
145526585554857
548459542565425
84557
    • good
    • 0

質問の内容がわからないのでおたずねします。


180個のデータの中で下8桁が30個のデータのいずれかに該当する数を抽出するということでしょうか。

この回答への補足

お返事ありがとうございます。

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

よろしくお願いします。

補足日時:2006/02/20 13:56
    • good
    • 0

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

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

このQ&Aを見た人が検索しているワード


人気Q&Aランキング