[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『和が10になる数字を赤字で表示したい』(アラントロン)
B2:J21の各セルに1から9までの数字を振りました。
隣り合う数、上下の数、斜めに接する数の和が10になる箇所の数字を赤字で示す方法を教えてください。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
この隣り合うセルの合計は二つのセルだけなのか? 例えば1,4,5と並んでいる場合、これも対象になるのか? (ねむねむ) 2015/01/30(金) 14:23
1行目、22行目、A列、K列は空白と考えていいのでしょうか? それとも、それは甘い!! でしょうか?
(β) 2015/01/30(金) 14:49
似たような質問だが。
1行目・22行目・A列目・K列目に数字が入ることはあるのか? (文字はあっても構わない) (ねむねむ) 2015/01/30(金) 14:53
(アラントロン) 2015/01/30(金) 14:54
(アラントロン) 2015/01/30(金) 14:57
1行目には入りません。 22行目以降は数字を増やす予定です。 A列目・K列目に数字は入りません。
(アラントロン) 2015/01/30(金) 15:00
B2:J21(最終的に数字を入力する行まで設定してくれ)を選択してホーム−条件付き書式−新しいルールを開き 「数式を使用して、書式設定するセルを決定」で数式に =OR(AND(B2<>5,COUNTIF(A1:C3,10-B2)),COUNTIF(A1:C3,10-B2)>1) として書式でフォントを赤、でどうだろうか? (ねむねむ) 2015/01/30(金) 15:05
To ねむねむさん
たとえば B2 に B2 を参照する式を入れると循環参照になってしまいますね。 さっきから、そこをどうにかできないかと頭の体操を繰り返してるんですが、なかなかいいアイデアが うかびません。
(β) 2015/01/30(金) 15:08
直接セルに入力するのではなく条件付き書式の条件として入力するのであれば循環参照にはならないと思うが。
(ねむねむ) 2015/01/30(金) 15:10
Sub test() Dim R As Range Dim i As Long Dim j As Long Dim iMaxX As Long Dim iMaxY As Long
Set R = Range(Range("B2").Offset(-1, -1), Range("J21").Offset(1, 1)) R.Interior.Color = xlAutomatic iMaxX = R.Columns.Count iMaxY = R.Rows.Count
R.Range(R.Cells(3, 1), R.Cells(3, iMaxX)).Copy R.Cells(1, 1) R.Range(R.Cells(iMaxY - 2, 1), R.Cells(iMaxY - 2, iMaxX)).Copy R.Cells(iMaxY, 1) R.Range(R.Cells(1, 3), R.Cells(iMaxY, 3)).Copy R.Cells(1, 1) R.Range(R.Cells(1, iMaxX - 2), R.Cells(iMaxY, iMaxX - 2)).Copy R.Cells(1, iMaxX)
For i = 2 To iMaxX - 1 For j = 2 To iMaxY - 1 If R(j, i).Value + R(j - 1, i).Value = 10 And _ R(j, i).Value + R(j + 1, i).Value = 10 And _ R(j, i).Value + R(j, i - 1).Value = 10 And _ R(j, i).Value + R(j, i + 1).Value = 10 And _ R(j, i).Value + R(j - 1, i - 1).Value = 10 And _ R(j, i).Value + R(j - 1, i + 1).Value = 10 And _ R(j, i).Value + R(j + 1, i - 1).Value = 10 And _ R(j, i).Value + R(j + 1, i + 1).Value = 10 Then R.Cells(j, i).Interior.Color = RGB(255, 128, 128) End If Next j Next i
R.Range(R.Cells(1, 1), R.Cells(1, iMaxX)).ClearContents R.Range(R.Cells(iMaxY, 1), R.Cells(iMaxY, iMaxX)).ClearContents R.Range(R.Cells(1, 1), R.Cells(iMaxY, 1)).ClearContents R.Range(R.Cells(1, iMaxX), R.Cells(iMaxY, iMaxX)).ClearContents End Sub (???) 2015/01/30(金) 15:19
そのとおりでした。確認もしないでレスして申し訳なし。
(β) 2015/01/30(金) 15:23
Sub test() Dim R As Range Dim i As Long Dim j As Long Dim iMaxX As Long Dim iMaxY As Long
Set R = Range("B2:J21") R.Interior.Color = xlAutomatic iMaxX = R.Columns.Count iMaxY = R.Rows.Count
For i = 1 To iMaxX For j = 1 To iMaxY If R(j, i).Value + R(j - 1, i).Value = 10 Or _ R(j, i).Value + R(j + 1, i).Value = 10 Or _ R(j, i).Value + R(j, i - 1).Value = 10 Or _ R(j, i).Value + R(j, i + 1).Value = 10 Or _ R(j, i).Value + R(j - 1, i - 1).Value = 10 Or _ R(j, i).Value + R(j - 1, i + 1).Value = 10 Or _ R(j, i).Value + R(j + 1, i - 1).Value = 10 Or _ R(j, i).Value + R(j + 1, i + 1).Value = 10 Then R.Cells(j, i).Interior.Color = RGB(255, 128, 128) End If Next j Next i End Sub (???) 2015/01/30(金) 15:26
(アラントロン) 2015/01/30(金) 15:27
(アラントロン) 2015/01/30(金) 15:30
セルを塗りつぶすほうが良ければ条件付き書式の書式で「フォント」の色ではなく「塗りつぶし」の「色」を設定してみてくれ。 (ねむねむ) 2015/01/30(金) 15:34
こんな感じでも・・・ =SUM((B2+A1:C3=10)*1)>(B2=5)*1
(ねむねむ)さんの回答を利用して =COUNTIF(A1:C3,10-B2)>(B2=5)*1 (・) 2015/01/30(金) 16:21
R.Cells(j, i).Interior.Color = RGB(255, 128, 128) を少し変更して、 R.Cells(j, i).Interior.ColorIndex = 5 調べてこの様にして色付けセルの数を数えるように。 http://excel-magic.com/post-41/ Function CellColor(セル) CellColor = セル.Interior.ColorIndex End Function =CellColor(B2) なぜなのか数が合わないのです。
(アラントロン) 2015/01/31(土) 23:46
リンク先で、一致する色の数を数えるのはSumColor( 計算範囲 , 条件色セル )のようですし、
これは行に付けた色を数えるものなので、このままでは今回のようなセル範囲には使えないです。
着色したセル数を数えたいなら、例えば以下。
Sub test2() Dim R As Range Dim iCou As Long
For Each R In Range("B2:J21") If R.Interior.ColorIndex <> xlNone Then iCou = iCou + 1 End If Next R
MsgBox iCou End Sub (???) 2015/02/02(月) 09:01
(アラントロン) 2015/02/02(月) 19:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.