|
▼n さん:
>こんにちは。
>>実行すると空欄があるのに、エラー表示がでません。
>そのコードが標準モジュールに書かれていて、
>ActivesheetのC10セルが本当に空欄なら、MsgBoxは表示されるはずです。
>今一度確認してみましょう。
>例えば
>MsgBox Len(Range("C10").Value)
>は何と出ますか?
>
>わからない場合は全文提示したほうが的確なレスがつきますよ。
お答えありがとうございました。質問の仕方もよくわからない初心者なものですいません。早速やってみましたが、やはり実行するとMsgBoxgが表示されません。長くなりますが全文表示させて頂きます。
Sub
'入力画面からデータを保存画面へコピーする
'変数の宣言
Dim b As Integer
Dim mytime As Range
b = MsgBox("登録を実行します", vbOKCancel, 保存データの登録) '登録ボタンを押したときのメッセージ
If b = vbOK Then
'OKボタン後に入力シートの空欄がないかをチェックする
'日付のチェック
If IsDate(Range("B5").Value) Then
Else
MsgBox ("日付の入力をしてください")
Exit Sub
End If
'時間のチェック
For Each mytime In Range("H3:H7")
If IsNumeric(mytime.Value) And Not IsEmpty(mytime.Value) Then
Else
MsgBox ("時間の入力がされていません")
Exit Sub
End If
Next
'点検確認項目欄のチェック
If Range("C10,C12,C15").Value = "" Then
MsgBox Len(Range("C10").Value)
End If
If Range("A95").Value = "" Then
MsgBox ("コメント欄が空欄です")
Exit Sub
End If
Sheets("保存データ").Activate '保存データをアクティブにする
Range("B65536").End(xlUp).Activate '一番下の行からみて最初の数値記入セルを見て、一段下に下げる
ActiveCell.Offset(1, 0).Activate
ActiveCell.Value = Sheets("結果一覧表").Range"C3").Value '日付の登録後、一つ右のセルへ移動
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Sheets("結果一覧表").Range("D8").Value '点検確認項目の保存
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Sheets("計器替え結果一覧表").Range("D9").Value
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Sheets("計器替え結果一覧表").Range("D10").Value
ActiveCell.Offset(0, 1).Activate
End If
End Sub
日付や時刻については、書より何とかできたのですが、点検確認項目の空欄チェックができません。「◎、×、 」を判断させているから問題なのでしょうか?また、チェックするセルには入力漏れを防ぐために塗りつぶししてあるのですが、それも何かあるのでしょうか?
|
|