-ChatGPT4-に質問 VBAでシートの〇列にある連続する行のデータに●●という文字がある場合は、その行を削除してください。

-ChatGPT4-

-ChatGPT4-に質問

VBAでダイアログボックスで選択したファイルのInvoice_details(編集用)シートのBB列にある連続する行のデータにVATという文字がある場合は、その行を削除してください。ChatGPT4に質問 

ChatGPT4の回答

Sub DeleteRowsWithVAT()

    Dim targetFile As Variant
    Dim targetWb As Workbook
    Dim targetWs As Worksheet
    Dim lastRow As Long
    Dim i As Long

    ' ダイアログボックスでファイルを選択
    targetFile = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls; *.xlsx; *.xlsm),*.xls; *.xlsx; *.xlsm", Title:="対象のExcelファイルを選択してください")
    
    ' キャンセルボタンがクリックされた場合、処理を終了
    If targetFile = False Then Exit Sub

    ' 選択したファイルを開く
    Set targetWb = Workbooks.Open(targetFile)

    ' Invoice_details(編集用)シートを選択
    On Error Resume Next
    Set targetWs = targetWb.Worksheets("Invoice_details(編集用)")
    On Error GoTo 0

    If targetWs Is Nothing Then
        MsgBox "Invoice_details(編集用)シートが見つかりません。", vbCritical, "エラー"
        targetWb.Close SaveChanges:=False
        Exit Sub
    End If

    ' 最終行を取得
    lastRow = targetWs.Cells(targetWs.Rows.Count, "BB").End(xlUp).Row

    ' BB列のデータを確認し、「VAT」を含む行を削除
    For i = lastRow To 1 Step -1
        If InStr(targetWs.Cells(i, "BB").Value, "VAT") > 0 Then
            targetWs.Rows(i).Delete
        End If
    Next i

    ' 変更を保存してファイルを閉じる
    targetWb.Close SaveChanges:=True

    MsgBox "Invoice_details(編集用)シートのVATを含む行を削除しました。", vbInformation, "完了"

End Sub
タイトルとURLをコピーしました