|
neptune さん、seg さん、アドバイスをありがとうございます!
おかげさまで、プロシージャは動くようになったのですが、このままでは、毎回、質問しなければ、アレンジできないので、インデントについて、もう少し質問させてください。
「1.は1.’と対応」という風に、対応していると思うものに、番号を振ってみたのですが、合っていますか?
よろしくお願いします。
'
'「登録・更新」ボタンがクリックされたときの処理
'
Private Sub cmd登録・更新_Click()
Dim chkStr As String '入力チェックのメッセージ文
Dim myRcdNum As Long '現在のレコード番号
Dim myMeiCnt As Integer '「受注伝票」シートの明細データの件数
Dim tbEndRow As Long '「TB_受注」シートの最後の行の行番号
Dim r As Integer '「TB_受注」シートの書き込み先の行をカウント
Dim i As Integer 'カウンタ変数
'----- 入力データのチェック -----
'入力された明細データの件数を代入する
myMeiCnt = Range("L36").Value
'初期値を代入する
chkStr = ""
'担当者名が未入力の場合
If IsEmpty(Range("L11")) Then 1.
chkStr = "受付担当を入力してください。"
Range("L11").Select 1.’
'顧客名が未入力の場合
ElseIf IsEmpty(Range("B6")) Then 2.
chkStr = "顧客番号を入力してください。" 2.’
Range("B6").Select
'発送日が未入力の場合
ElseIf IsEmpty(Range("B9")) Then 3.
chkStr = "発送日を入力してください。" 3.’
Range("B9").Select
'品名が未入力の場合
ElseIf myMeiCnt = 0 Then 4.
chkStr = "明細データを入力してください。" 4.’
Range("B17").Select
'数量に空欄がある場合
Else ←要らない?
For i = 1 To 18 5.
If Not IsEmpty(Cells(16 + i, 2)) Then 'i行目の品名 6.
If IsEmpty(Cells(16 + i, 9)) Then 'i行目の数量 7.
chkStr = "数量が未入力の商品があります。"
Cells(16 + i, 9).Select
'Forループを抜ける
Exit For
ElseIf IsEmpty(Cells(16 + i, 10)) Then 'i行目の数量8.
単位
chkStr = "数量単位が未入力の商品があります。" 8.’
Cells(16 + i, 10).Select
'Forループを抜ける
Exit For
ElseIf IsEmpty(Cells(16 + i, 11)) Then 'i行目の単価9.
chkStr = "単価が未入力の商品があります。" 9.’
Cells(16 + i, 11).Select
'Forループを抜ける
Exit For
End If 7.’
End If 6.’
Next 5.’
End If 1.’
'入力漏れがある場合はプロシージャを抜ける
If chkStr <> "" Then 10.
MsgBox chkStr, vbCritical, "登録エラー"
Exit Sub
End If 10.’
'----- 入力データのチェック -----
End Sub
|
|