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ファイルがどの位あるのか知りたい場合には使えるスクリプトかもしれません。

JavaのGUIDを取得するVBAマクロ前のページ

2014年11月の人気記事次のページ

関連記事

  1. Office関連

    Officeファイルから作成者などのプロパティを取得するVBScript

    下記記事でも書いていますが、xlsxやdocxといった、OOXML形式…

  2. Office関連

    Officeアプリケーションの「最近使用したファイル」を削除するVBScript

    WordやExcel等のOfficeアプリケーションでは、下記サイトに…

  3. Office関連

    セル内の改行をカウントするExcelマクロ

    「Excel セルの内容 改行を数える VBA」といったキーワード検索…

  4. Office関連

    PDFファイル上のフィールドの値を操作するVBAマクロ

    「PDFファイルに差し込み印刷するVBAマクロ」で、Acrobatを操…

  5. Office関連

    Excelで地理データや株価情報を取得する方法

    下記記事にある、今年3月に追加された「データの種類」機能を使って、Ex…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP