[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エラーチェック』(弘子)
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.