Excel VBA質問箱 IV

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

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


17942 / 76738 ←次へ | 前へ→

【64240】Re:Elseの分岐
お礼  初心者です  - 10/1/27(水) 13:53 -

引用なし
パスワード
   Hirofumi さん、ありがとうございます!!
おかげで動きました!

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

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

ご説明頂いたことは、まったく分かりませんでしたが、メッセージボックスは、ポップアップ表示されるし、すごいの一言です。
ありがとうございました。

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


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

Private Sub cmd登録・更新_Click()

 Dim chkStr As String


  '入力漏れがある場合はプロシージャを抜ける
  chkStr = DataCheke
  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 お礼

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