[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白チェック』(ちな)
初心者につき、教えてください。
可変する列行の表内で空白チェックをし、
そのセル位置をメッセージで表示させたいのですが、
うまくコードが組めず、悩んでおります。
表構成は、
F列〜(最大AK列まで)
8行目〜
です。
ご指導ください。
=↓自分で組んだものです↓=
※F〜AK列・8行目以降を「inputFLD」として名前設定しています。
Dim errFlg As Boolean
Dim Msg1 As String
Dim Msg2 As String
Dim ToCol As Long
Dim ToRow As Long
Dim x As Long
Dim y As Long
y = 6
With .Range("inputFLD")
ToRow = .Cells(.Rows.Count, 1).End(xlUp).Row - .Rows(1).Row + 8
ToCol = .Cells(1, .Columns.Count).End(xlToLeft).Column - .Columns(1).Column + 1
For x = 8 To ToRow Do While y <= ToCol If IsEmpty(.Cells(x, y)) Then Msg1 = x Msg2 = y - 1 errFlg = True Exit For End If y = y + 1 Loop Next x
End With
If errFlg Then errMsg = "・数量:" & Msg1 & "行目" & Msg2 & "列目" GoTo EXIT_NG End If
→名前設定にも関わらず
位置情報がうまく取得されず、
「x=」や「y=」と開始位置を結局指定しているのも気になっています。
また、セル位置のメッセージ表記も「●行目○列目」としていますが
ユーザーとしたら「B●」「G●」という表記の方がわかりやすいとも思います。
(これは必須条件ではないので、簡単な表示設定で教えて頂ければ幸いです。)
どこを直すとうまく動作するのか教えていただけますと とても助かります。
よろしくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
Sub test() Dim errMsg As String Dim R As Range
For Each R In Range("inputFLD") If IsEmpty(R) Then errMsg = "・数量:" & Replace(R.Address, "$", "") & "セル" Exit For End If Next R
MsgBox errMsg End Sub (???) 2016/05/20(金) 09:58
Sub test2() Dim errMsg As String Dim R As Range
For Each R In Range("inputFLD") If IsEmpty(R) Then errMsg = "・数量:" & Replace(R.Address, "$", "") & "セル" Exit For End If Next R
If errMsg = "" Then MsgBox "ok" Else MsgBox errMsg Range(R.Address).Select End If End Sub (???) 2016/05/20(金) 10:04
Sub test3() Dim errMsg As String Dim R As Range
For Each R In Range("inputFLD") If IsEmpty(R) Then If errMsg = "" Then errMsg = "・数量:" Else errMsg = errMsg & ", " End If errMsg = errMsg & Replace(R.Address, "$", "") End If Next R
If errMsg = "" Then MsgBox "ok" Else MsgBox errMsg End If End Sub (???) 2016/05/20(金) 10:10
最初に記載いただいたコードで組んでみたところ、
「inputFLD」で設定している範囲の最終列・行が最終とは限らないため
これだと使用しないセルでもエラーメッセージが出てしまいます。
6列目に「UNITFLD」という名前設定した必須項目の範囲セルを設けており、
そこから最終列判定ができるとは思うのですが・・・
どうでしょうか?
ちなみに、
複数の空白がある場合のメッセージ表示は
都度でもまとめてでも大丈夫です。
※実は、他項目でも入力(空白)チェックをまわしていて
ここでまとめたところで他のチェックでは別でメッセージが出ることになるので。
せっかくご親切に何度もご提示いただいたのに
説明不足と知識不足で申し訳ありませんが、
引き続きよろしくお願い致します。
(ちな) 2016/05/20(金) 11:04
For Each R In Range("F8:AK" & Cells(Rows.Count, "F").End(xlUp).Row) (???) 2016/05/20(金) 13:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.