■呼び出し元プロシージャ
Sub test() Dim bookPath As String Dim sheetName As String Dim wb As Workbook bookPath = "C:\Users\デスクトップ\テスト\売上確定情報.xlsx" sheetName = "Sheet1" 'リンクを更新しないでブックを開く Set wb = Workbooks.Open(bookPath, False) 'フィルターがかかっていたら解除する Call ReleaseFilter(wb, sheetName) End Sub
■フィルタ解除プロシージャ
Sub ReleaseFilter(wb As Workbook, shName As String) '-------------------------------------------------- '機能:指定したブックの指定したシートにフィルタが ' かかっているか確認し、フィルタを解除する '引数1:対象ワークブックオブジェクト '引数2:対象シート名 '-------------------------------------------------- Dim filterRange As String '--------------------------------- 'ログ出力 Debug.Print "■ReleaseFilter開始■" Debug.Print "△開始時の値△" Debug.Print "shName: " & shName '--------------------------------- 'フィルタがかかっていたらフィルタのかかっている範囲を取得 With wb.Sheets(shName) If .AutoFilterMode Then filterRange = .AutoFilter.Range.Address Debug.Print filterRange 'フィルタを解除 Range(filterRange).AutoFilter End If End With '--------------------------------- Debug.Print "■ReleaseFilter終了■" '--------------------------------- End Sub