| 
    
     |  | 'Functionの形にして呼び出した方が使い勝手が善いかも? 
 Option Explicit
 
 Private Sub cmd登録・更新_Click()
 
 '入力漏れがある場合はプロシージャを抜ける
 If DataCheke <> "" Then
 MsgBox chkStr, vbCritical, "登録エラー"
 End If
 
 End Sub
 
 Private Function DataCheke() As String
 
 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
 
 '担当者名が未入力の場合
 If IsEmpty(Range("L11")) Then
 DataCheke = "受付担当を入力してください。"
 Range("L11").Select
 Exit Function
 End If
 
 '顧客名が未入力の場合
 If IsEmpty(Range("B6")) Then
 DataCheke = "顧客番号を入力してください。"
 Range("B6").Select
 Exit Function
 End If
 
 '発送日が未入力の場合
 If IsEmpty(Range("B9")) Then
 DataCheke = "発送日を入力してください。"
 Range("B9").Select
 Exit Function
 End If
 
 '品名が未入力の場合
 If myMeiCnt = 0 Then
 DataCheke = "明細データを入力してください。"
 Range("B17").Select
 Exit Function
 End If
 
 '数量に空欄がある場合
 For i = 1 To 18
 If Not IsEmpty(Cells(16 + i, 2)) Then    'i行目の品名
 If IsEmpty(Cells(16 + i, 9)) Then    'i行目の数量
 DataCheke = "数量が未入力の商品があります。"
 Cells(16 + i, 9).Select
 'Forループを抜ける
 '        Exit For
 Exit Function
 End If
 End If
 Next i
 
 '数量単位に空欄がある場合
 For i = 1 To 18
 If Not IsEmpty(Cells(16 + i, 2)) Then    'i行目の品名
 If IsEmpty(Cells(16 + i, 10)) Then    'i行目の数量単位
 DataCheke = "数量単位が未入力の商品があります。"
 Cells(16 + i, 10).Select
 'Forループを抜ける
 '        Exit For
 Exit Function
 End If
 End If
 Next i
 
 '単価に空欄がある場合
 For i = 1 To 18
 If Not IsEmpty(Cells(16 + i, 2)) Then    'i行目の品名
 If IsEmpty(Cells(16 + i, 11)) Then    'i行目の単価
 DataCheke = "単価が未入力の商品があります。"
 Cells(16 + i, 11).Select
 'Forループを抜ける
 '        Exit For
 Exit Function
 End If
 End If
 Next i
 
 End Function
 
 
 |  |