• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで教えてください。)

VBAでデータがない場合にExitSubする方法

このQ&Aのポイント
  • VBAでデータがない場合にExitSubする方法について教えてください。
  • 質問者は、データがない場合にExitSubしたいと考えています。
  • 質問者は、VBAコードのどこにExitSubを記述すれば良いかわからないと述べています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんばんは。 #2さんのおっしゃるように、下から削除するというのが一般的です。 なお、範囲が数値で数えられるものは、For i =1 ~ To ... Next のスタイルのほうが良いです。Do ~ Loopは、また、別の時に使います。 '// Sub DeleteRowsCount()  Dim sVal As Variant  Dim i As Long  sVal = Worksheets("マスタ登録").Range("D5").Value  If sVal = "" Then MsgBox "マスタ登録のデータがありません。", 48: Exit Sub  Application.ScreenUpdating = False  With Worksheets("リスト")   If Application.CountIf(.Columns("E"), sVal) = 0 Then MsgBox sVal & "はありません。", 24: Exit Sub   If MsgBox("データを削除します。よろしいですか?", vbYesNo) = vbNo Then Exit Sub   For i = .Cells(Rows.Count, "E").End(xlUp).Row To 5 Step -1    If .Cells(i, "E").Value = sVal Then     .Cells(i, "E").EntireRow.Delete    End If   Next i  End With  Application.ScreenUpdating = True End Sub

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

Sheets("リスト").Select の後にでも↓を入れてみて下さい。 If WorksheetFunction.CountIf(Range(Cells(5, 5), Cells(200, 5)), Sheets("マスタ登録").Range("D5")) = 0 Then Exit Sub でも、今のままのコードでは削除対象の行が連続していた場合、1つ目の行を削除したことで行がずれるので、2つ目の行は削除できませんよ。 行の削除は下から上に行いましょう

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

単純に「先頭セルがブランクかどうか」のチェックで良いんじゃ? Sheets("リスト").Select IF Cells(5, 5).Value = "" Then Exit Sub i = 5 これでいいと思いますけど・・・。

関連するQ&A