| 
    
     |  | Goto文嫌らわれるのですが? 私なら、以下の様かな?
 
 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
 chkStr = "受付担当を入力してください。"
 Range("L11").Select
 GoTo Wayout
 End If
 
 '顧客名が未入力の場合
 If IsEmpty(Range("B6")) Then
 chkStr = "顧客番号を入力してください。"
 Range("B6").Select
 GoTo Wayout
 End If
 
 '発送日が未入力の場合
 If IsEmpty(Range("B9")) Then
 chkStr = "発送日を入力してください。"
 Range("B9").Select
 GoTo Wayout
 End If
 
 '品名が未入力の場合
 If myMeiCnt = 0 Then
 chkStr = "明細データを入力してください。"
 Range("B17").Select
 GoTo Wayout
 End If
 
 '数量に空欄がある場合
 For i = 1 To 18
 If Not IsEmpty(Cells(16 + i, 2)) Then    'i行目の品名
 If IsEmpty(Cells(16 + i, 9)) Then    'i行目の数量
 chkStr = "数量が未入力の商品があります。"
 Cells(16 + i, 9).Select
 'Forループを抜ける
 '        Exit For
 GoTo Wayout
 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行目の数量単位
 chkStr = "数量単位が未入力の商品があります。"
 Cells(16 + i, 10).Select
 'Forループを抜ける
 '        Exit For
 GoTo Wayout
 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行目の単価
 chkStr = "単価が未入力の商品があります。"
 Cells(16 + i, 11).Select
 'Forループを抜ける
 '        Exit For
 GoTo Wayout
 End If
 End If
 Next i
 
 Wayout:
 
 '入力漏れがある場合はプロシージャを抜ける
 If chkStr <> "" Then
 MsgBox chkStr, vbCritical, "登録エラー"
 End If
 
 End Sub
 
 
 |  |