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

    Microsoft Edgeを操作するVBAマクロ(DOM編)

    2021/10/1 追記:本記事は公開されてから大分時間が経ってお…

  2. Office関連

    [VBA]自動的にフォントサイズを調整する疑似テキストボックス

    前回と同様、環境依存つながりでmougの給湯室に書いたコードを載せてお…

  3. Office関連

    Trello APIを使ってカードを投稿するVBAマクロ

    以前Fiddlerを使ってTrello APIを実行する記事を書きまし…

  4. Office関連

    日本標準時(JST)を取得するVBAマクロ

    先日、もり(@moripro3)さんのツイートに対して下記のような返信…

  5. Office関連

    文字列を指定した文字数で分割するVBA関数

    "01234567890123456789012…"というような長い文…

  6. Windows関連

    Windows 8を従来のスタイルに変更するスクリプト

    2012/3/2 追記:下記情報はWindows Develope…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP