Step4 CSSファイルを開きセレクタ名を検索しセルに一覧表示する

セレクタ名は「div#」「#」「.」を検索するようにしました。「body」「a」「h1」などは必ずのように使うのでチェックしません。CSSファイルを1行ずつ読み込み、先頭文字を調べます。

ファイルを1行ずつ読み込むには、Line Inputを使います。
読み込んだ文字は大文字・小文字が混じっている可能性があるので、LCaseで小文字にしてから調べます。
また、先頭と最後にスペースが含まれる可能性があるので、LTrimとRTrimでスペースを削除します。
セレクタ名は先頭文字から「{」までの、スペースを削除した文字になります。

CSSで使われていないセレクタ見つけるExcelソフト


スポンサードリンク



実行結果の画面

G行に見つかったセレクタ名を表示しました。
見つかったセレクタ名を表示したシート

スポンサードリンク



VBAコード

入力したVBAコードです。
開始ボタンのクリックイベント内に、新しく作成しプロシージャーの「MyGetSelectors」を追加します。

Private Sub CommandButton3_Click()
    If Range("B5") = "" Then
        Beep
        MsgBox "CSSファイルを指定してください。"
        Range("B5").Activate
        Exit Sub
    End If
    
    If Range("B11") = "" Then
        Beep
        MsgBox "調査フォルダーを指定してください。"
        Range("B11").Activate
        Exit Sub
    End If
    
    If PathFileExists(Range("B5")) = 0 Then
        Beep
        MsgBox "指定されたCSSファイルが存在しません。"
        Range("B5").Activate
        Exit Sub
    End If
    
    If PathFileExists(Range("B11")) = 0 Then
        Beep
        MsgBox "指定された調査フォルダーが存在しません。"
        Range("B11").Activate
        Exit Sub
    End If

    MyGetSelectors
End Sub

ファイル開いて読むプロシージャー

流れは上から順に
1)一覧を表示するセル範囲を、広めにクリアします。
2)ファイルうぃ開きます。
3.)ファイルの最終行までループします。
4)1行読みます。
5)半角に変換し、左スペースを削除します。
6)先頭が「div#」か調べます。
  先頭が「#」か調べます。
  先頭が「.」か調べます。
  そうであれば、「MySetSelectors」プロシージャーに移動します。
7)CSSファイルを閉じます。

Private Sub MyGetSelectors()
    Dim s1 As String
    Dim s2 As String
    Dim fn As Long
    
    lcol = 5
    Range("G5:G1000").Clear
    fn = FreeFile
    Open Range("B5") For Input As #fn
    Do Until EOF(fn)
        Line Input #fn, s1
        s2 = LTrim(LCase(s1))
        
        If Left(s2, 4) = "div#" Then
            MySetSelectors s2
        End If
        
        If Left(s2, 1) = "#" Then
            MySetSelectors s2
        End If
        
        If Left(s2, 1) = "." Then
            MySetSelectors s2
        End If
        
    Loop
    Close #fn
End Sub

セレクタ名を取り出しセルに表示するプロシージャー

流れは上から順に
1)「{」を検索します。
2)見つかれば「{」を取り除きます。
3)右のスペースを削除しセルに入力します。

Private Sub MySetSelectors(sc1 As String)
    Dim sc2 As String
    Dim ln As Long
    
    ln = InStr(1, sc1, "{")
    If ln > 0 Then
        sc2 = Left(sc1, ln - 1)
    Else
        sc2 = sc1
    End If
    
    Sheets("Sheet1").Cells(lcol, 7) = RTrim(sc2)
    lcol = lcol + 1
End Sub


スポンサードリンク





CSSで使われていないセレクタ見つけるExcelソフト

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


関連コンテンツ

Copyright (c) Excel-Excel ! All rights reserved