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. VBScript

    Office付属のVBEでVBScriptコードを書くのを助けるVBScript

    VBScriptのコードを書くとき、メモ帳等のテキストエディタではイン…

  2. Office関連

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

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

  3. Office関連

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

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

  4. Office関連

    Excel 2016でマップグラフを作成する。

    12月6日、Office Insider向けに、Office 2016…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP