Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


17958 / 76732 ←次へ | 前へ→

【64218】Re:Elseの分岐
回答  Hirofumi  - 10/1/26(火) 18:42 -

引用なし
パスワード
   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
0 hits

【64217】Elseの分岐 初心者です 10/1/26(火) 17:36 質問
【64218】Re:Elseの分岐 Hirofumi 10/1/26(火) 18:42 回答
【64219】Re:Elseの分岐 Hirofumi 10/1/26(火) 18:51 回答
【64220】Re:Elseの分岐 Hirofumi 10/1/26(火) 19:13 回答
【64229】Re:Elseの分岐 初心者です 10/1/27(水) 10:42 質問
【64231】Re:Elseの分岐 neptune 10/1/27(水) 11:02 回答
【64233】Re:Elseの分岐 初心者です 10/1/27(水) 11:34 質問
【64236】Re:Elseの分岐 seg 10/1/27(水) 12:25 発言
【64242】Re:Elseの分岐 初心者です 10/1/27(水) 14:36 質問
【64235】Re:Elseの分岐 Hirofumi 10/1/27(水) 12:16 回答
【64240】Re:Elseの分岐 初心者です 10/1/27(水) 13:53 お礼
【64243】Re:Elseの分岐 Hirofumi 10/1/27(水) 14:42 発言
【64244】Re:Elseの分岐 初心者です 10/1/27(水) 15:03 お礼
【64221】Re:Elseの分岐 よろずや 10/1/26(火) 19:30 回答
【64230】Re:Elseの分岐 初心者です 10/1/27(水) 10:52 質問
【64241】Re:Elseの分岐 初心者です 10/1/27(水) 14:00 お礼

17958 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free