Excel

フォルダ内にあるExcelファイルをカウントするVBScript

フォルダ内 Excel 数える VBScript」といったキーワード検索でのアクセスがありました。

恐らく指定したフォルダ内にあるExcelファイルをカウントすることが目的だと思いますが、スクリプトでの簡単な処理を考えてみました。

※ 下記コードはサブフォルダ内のExcelファイルはカウントしません。

Option Explicit

Dim args
Dim f
Dim cntXls  'Excel 97-2003 ブック (*.xls)
Dim cntXlsx 'Excel ブック (*.xlsx)
Dim cntXlsm 'Excel マクロ有効ブック (*.xlsm)
Dim cntXlsb 'Excel バイナリ ブック (*.xlsb)
Dim cntXlt  'Excel 97-2003 テンプレート (*.xlt)
Dim cntXltx 'Excel テンプレート (*.xltx)
Dim cntXltm 'Excel マクロ有効テンプレート (*.xltm)
Dim cntXla  'Excel 97-2003 アドイン (*.xla)
Dim cntXlam 'Excel アドイン (*.xlam)
Dim cntCsv  'CSV (*.csv)

'初期化
cntXls = 0
cntXlsx = 0
cntXlsm = 0
cntXlsb = 0
cntXlt = 0
cntXltx = 0
cntXltm = 0
cntXla = 0
cntXlam = 0
cntCsv = 0

Set args = WScript.Arguments
'パラメータ数チェック
If args.Count < 1 Then
  WScript.Echo "当スクリプトにフォルダをドラッグ&ドロップして処理を実行してください。"
  WScript.Quit
End If

With CreateObject("Scripting.FileSystemObject")
  If Not .FolderExists(args(0)) Then
    WScript.Echo "フォルダが見つかりません。" & vbCrLf & "あるいはフォルダではありません。"
    WScript.Quit
  Else
    For Each f In .GetFolder(args(0)).Files
      Select Case LCase(.GetExtensionName(f.Path))
        Case "xls":  cntXls = cntXls + 1
        Case "xlsx": cntXlsx = cntXlsx + 1
        Case "xlsm": cntXlsm = cntXlsm + 1
        Case "xlsb": cntXlsb = cntXlsb + 1
        Case "xlt":  cntXlt = cntXlt + 1
        Case "xltx": cntXltx = cntXltx + 1
        Case "xltm": cntXltm = cntXltm + 1
        Case "xla":  cntXla = cntXla + 1
        Case "xlam": cntXlam = cntXlam + 1
        Case "csv":  cntCsv = cntCsv + 1
      End Select
    Next
  End If
End With

WScript.Echo "[" & args(0) & "]フォルダ内にあるExcelファイル数は下記の通りです。" & vbCrLf & vbCrLf & _
             "Excel 97-2003 ブック (*.xls):" & cntXls & vbCrLf & _
             "Excel ブック (*.xlsx):" & cntXlsx & vbCrLf & _
             "Excel マクロ有効ブック (*.xlsm):" & cntXlsm & vbCrLf & _
             "Excel バイナリ ブック (*.xlsb):" & cntXlsb & vbCrLf & _
             "Excel 97-2003 テンプレート (*.xlt):" & cntXlt & vbCrLf & _
             "Excel テンプレート (*.xltx):" & cntXltx & vbCrLf & _
             "Excel マクロ有効テンプレート (*.xltm):" & cntXltm & vbCrLf & _
             "Excel 97-2003 アドイン (*.xla):" & cntXla & vbCrLf & _
             "Excel アドイン (*.xlam):" & cntXlam & vbCrLf & _
             "CSV (*.csv):" & cntCsv

上記コードを「vbs」ファイルとして保存し、そのファイルに対象となるフォルダをドラッグ&ドロップすると、下図のようにExcelファイルをカウントした結果が表示されます。

CountExcelFiles_01

需要があるのかどうかは分かりませんが、大量にファイルがあるフォルダの中で、Excelファイルがどの位あるのか知りたい場合には使えるスクリプトかもしれません。

関連記事

  1. Office関連

    UIAutomationClient参照時にDLL読み込みエラーが発生した時の対処法

    マクロでダイアログやボタンの操作を行う時に便利なUI Automati…

  2. VBScript

    【Illustrator】指定したPDFプリセットでAIファイルをPDFに一括変換するVBScrip…

    前回の記事で、Illustratorに登録されたPDFプリセットを列挙…

  3. Office関連

    マクロで実行したいコマンドのIDを調べる簡単な方法

    MSDN フォーラムに下記質問がありました。・Excel-VB…

  4. Office関連

    インストールされたフォントの一覧を取得するVBAマクロ

    最近自分の周りでPowerPoint VBAが流行っているようだったの…

  5. Office関連

    Excel REST APIをVBAから呼び出す方法

    「Microsoft GraphをVBAから呼び出してOneNoteの…

  6. Office関連

    古い形式のWordテンプレートを新しい形式に一括変換するVBScript

    古い形式のWordテンプレート(dot)を新しい形式(dotx,dot…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP