タブメニューのウィンドウ⑥(コード見直し)

このツールに関しては下記のタイトルのコードは以下の2つをご確認ください。

タブメニューのウィンドウ④(前編):HTAのコード
タブメニューのウィンドウ⑤(後編):VBScriptコード
タブメニューのウィンドウ⑥(原因調査):HTAのコード

コードを見直したところ、このあとのフィルタが0件なら終了しているのだから
最初の所でフィルターの検知は不要かと思いました。

'If srcSheet.AutoFilterMode = False Then
'	MsgBox "オートフィルタが設定されていません。"
'	srcBook.Close False
'	outBook.Close False
'	xlApp.Quit
'	WScript.Quit
'End If

また、下記の場合はだとG41行までしか対応できないのでこれもコードが不十分かと思いました。
せっかくlastRowで最終行を取得しているのだから活用すべきだかと思いました

srcSheet.Range("A4").AutoFilter 7, "*" & targetDate & "*"

On Error Resume Next
srcSheet.Range("G4:G41").SpecialCells xlCellTypeVisible
If Err.Number <> 0 Then
	MsgBox "対象日付のデータがありません。"
	Err.Clear
	srcBook.Close False
	outBook.Close False
	xlApp.Quit
	WScript.Quit
End If
On Error GoTo 0
lastRow = srcSheet.Cells(srcSheet.Rows.Count, "G").End(xlUp).Row

  '======================================================================================
    '「作業手続き申請書」(シート名)でオートフィルタの設定を確認する
    '======================================================================================
    Const xlCellTypeVisible = 12
    Const xlUp = -4162

    dataStartRow = 4

    ' サンプルコードのための動作確認のためフィルタリングの日付を「2025/12/25」を固定化
    targetDate = vbs_WorkStartDate

    srcSheet.Range("A4").AutoFilter 7, "*" & targetDate & "*"

    lastRow = srcSheet.Cells(srcSheet.Rows.Count, "G").End(xlUp).Row

    On Error Resume Next
    srcSheet.Range("G4:G" & lastRow).SpecialCells xlCellTypeVisible
    'srcSheet.Range("G4:G41").SpecialCells xlCellTypeVisible
    If Err.Number <> 0 Then
        MsgBox "対象日付のデータがありません。"
        Err.Clear
        srcBook.Close False
        outBook.Close False
        xlApp.Quit
        WScript.Quit
    End If
    On Error GoTo 0
タイトルとURLをコピーしました