Excel VBA質問箱 IV

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

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


17935 / 76732 ←次へ | 前へ→

【64241】Re:Elseの分岐
お礼  初心者です  - 10/1/27(水) 14:00 -

引用なし
パスワード
   よろずや さん、ありがとうございました!
Hirofumi さんに以下のご指摘を頂き、動くようになりました!

>myMeiCnt整数型変数に
>
>  myMeiCnt = Range("L36").Value
>
>で、文字列等数値以外を代入しようとしている為だと思います

という事で、L36は、エクセルのIF関数で、何も入力されていない場合には、空白を表示するようにしていた為でした。

まったく理解できていませんが、メッセージボックスは、ポップアップ表示されるし、すごいの一言です。
裏側はどんな風に書いても、おなじように動くなんて、不思議です。
本当にありがとうございました。

以下、動くようになったコードです。


'
'「登録・更新」ボタンがクリックされたときの処理
'
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
         ElseIf IsEmpty(Cells(16 + i, 10)) Then    'i行目の数量単位
          chkStr = "数量単位が未入力の商品があります。"
          Cells(16 + i, 10).Select
     
          'Forループを抜ける
          Exit For
         ElseIf 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
1 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 お礼

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