Excel VBA質問箱 IV

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

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


17959 / 76732 ←次へ | 前へ→

【64217】Elseの分岐
質問  初心者です  - 10/1/26(火) 17:36 -

引用なし
パスワード
   エクセルで納品書を作成する本を見て、納品書を作成している、VBA初心者です。
使いやすいように、アレンジしたいのですが、Elseの分岐で、つまずいています。
以下の伝票の登録ボタンを作成しているのですが、「〜が未入力の場合」と「〜が空白の場合」の分岐条件を増やしたく、以下のようにしてみましたが、「コンパイルエラー Elseに対応するIfがありません」の文章が出て、'数量単位に空欄がある場合の次のElseが選択されます。
基本的な事なのかもしれませんが、本を見て、丸写しながらやっている為、どこが間違っているのか、分かりません。
何卒、ご教示のほど、よろしくお願いいたします。

'
'「登録・更新」ボタンがクリックされたときの処理
'
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
  
  '顧客名が未入力の場合
  ElseIf IsEmpty(Range("B6")) Then
    chkStr = "顧客番号を入力してください。"
    Range("B6").Select
  
  '発送日が未入力の場合
  ElseIf IsEmpty(Range("B9")) Then
    chkStr = "発送日を入力してください。"
    Range("B9").Select
  
  '品名が未入力の場合
  ElseIf myMeiCnt = 0 Then
    chkStr = "明細データを入力してください。"
    Range("B17").Select
  
  '数量に空欄がある場合
  Else
    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
        End If
      End If
    Next
  End If
    
  '数量単位に空欄がある場合
  Else
    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
        End If
      End If
    Next
  End If
  
  '単価に空欄がある場合
  Else
    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
        End If
      End If
    Next
  End If
  
  '入力漏れがある場合はプロシージャを抜ける
  If chkStr <> "" Then
    MsgBox chkStr, vbCritical, "登録エラー"
    Exit Sub
  End If


End Sub

2 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 お礼

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