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

このツールに関しては下記のタイトルのコードは以下の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
targetDate = CStr(vbs_WorkStartDate)

' 最終行(A列基準)
lastRow = srcSheet.Cells(srcSheet.Rows.Count, "G").End(xlUp).Row

If lastRow <= 3 Then
    MsgBox "データ行が存在しません。"
    WScript.Quit
End If

' 既存フィルタ解除
If srcSheet.AutoFilterMode Then
    srcSheet.AutoFilterMode = False
End If

' 表全体にフィルタ設定(見出し行3行目)
srcSheet.Range("A3:G" & lastRow).AutoFilter

' ★ 文字列で部分一致フィルタ
srcSheet.Range("A3:G" & lastRow).AutoFilter 7, "*" & targetDate & "*"

On Error Resume Next
srcSheet.Range("G4:G" & lastRow).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をコピーしました