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関連

    [VBA]桁を揃えてDebug.Printする。

    @CallMeKoheiさんのブログの記事に「Excel VBA イミ…

  2. VBScript

    Expression WebでVBScriptのコードを書いてみる。

    今日たまたま下記の記事を見つけました。10年近く前の古い記事です。…

  3. Office関連

    組み込み定数を列挙するVBAマクロ

    定数の名前や値を調べたい、そんなときはTypeLib Informat…

  4. Office関連

    ClosedXMLやEPPlusでExcelファイルを読み書きしてみた。

    今回の記事の発端は下記のQiita投稿。・Excelファイ…

  5. Office関連

    Adobe Reader XIを利用してPDFファイルのページ数を取得するVBAマクロ

    先日Adobe Readerを利用してPDFファイルのページ数を取得す…

  6. VBScript

    Office文書を旧バージョンのファイル形式に変換するVBScript

    xlsxやdocxといった新しい形式のOffice文書をスクリプトファ…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP