[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エラーチェック』(弘子)
C列に有と書いてある場合に、H列〜CD列まで、全て”○”と入力されているかどうか調べたいです。○と入力されていないセルがあった場合、そのセルのエラーメッセージをだしたいです。この、セルを取り出す方法を教えてください。お願いします。(.Address ← これをどう使えばセルが拾えるのかが分かりません)
< 使用 Excel:Excel2010、使用 OS:Windows7 >
マクロで行いたい、ということでしょうか? (カリーニン) 2015/06/30(火) 10:26
はいその通りです。どうかよろしくお願いします。
(弘子) 2015/06/30(火) 10:31
以下は、○が欠落しているセルを表示せず、欠落していた行を表示しています。 やはり、欠落セルの表示がほしいということならコードを直しますが。
Sub Test()
Dim c As Range
Dim myFormula As String
Dim n As Long
Dim w As Variant
Dim x As Long
Dim fmx As String
ReDim w(1 To Rows.Count)
myFormula = "AND(C%=""有"",COUNTIF(H%:CD%,""○"")<75)"
For Each c In Range("C1", Range("C" & Rows.Count).End(xlUp))
fmx = Replace(myFormula, "%", c.Row)
If Evaluate(fmx) Then
x = x + 1
w(x) = c.Row
End If
Next
If x = 0 Then
MsgBox "すべてOK"
Else
ReDim Preserve w(1 To x)
MsgBox "以下の行に不足あり" & vbLf & Join(w, vbLf)
End If
End Sub
(β) 2015/06/30(火) 11:25
欠落したセルのアドレスをすべて表示するなら
Sub Test2()
Dim c As Range
Dim myFormula As String
Dim n As Long
Dim w As Variant
Dim x As Long
Dim fmx As String
Dim z As Long
Dim v As Variant
Dim r As Range
ReDim w(1 To Rows.Count)
myFormula = "AND(C%=""有"",COUNTIF(H%:CD%,""○"")<75)"
For Each c In Range("C1", Range("C" & Rows.Count).End(xlUp))
fmx = Replace(myFormula, "%", c.Row)
If Evaluate(fmx) Then
ReDim v(1 To 75)
z = 0
For Each r In c.EntireRow.Range("H1:CD1")
If r.Value <> "○" Then
z = z + 1
v(z) = r.Address(False, False)
End If
Next
If z > 0 Then
x = x + 1
ReDim Preserve v(1 To z)
w(x) = Join(v, ",")
End If
End If
Next
If x = 0 Then
MsgBox "すべてOK"
Else
ReDim Preserve w(1 To x)
MsgBox "以下のセルがおかしいよ" & vbLf & Join(w, vbLf)
End If
End Sub
(β) 2015/06/30(火) 11:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.