適材適所

PowerShellやVBAなどプログラミング系の話多めで

【PowerShell小ネタ】自分のパソコンのExcelファイルの拡張子の割合を調べてみる【Group-Object】

ExcelでどのくらいVBA使って開発したんだろう・・・?

自分のパソコンの中にどのくらいのExcelファイルがあって、そのうちどのくらいがVBAを使っているんだろう?

ふと気になったので、調べてみました。

(PowerShellを使って、xls*という拡張子のファイルがどのくらいあるか調べてみました。)

結果、VBAが入ったExcelファイルが多かった

こんな感じで表示されました。

やっぱりマクロ有ファイルのxlsmが一番多かった。

f:id:shinmai_papa:20210911233145p:plain

このように拡張子ごとに、どのくらいの割合でファイルがあるのか調べられると便利ですよね。

え?そんな需要ない?いや、きっとできれば便利ですし、ぜひ調べてみてください!!

気を取り直して・・・。

PowerShellのGroup-Objectコマンドレットを使えば簡単に調べることができます。

コマンド

 
$groupObj=Get-ChildItem-Path 'C:\' -Recurse -ErrorAction SilentlyContinue|Where-Object{$_.Extension -like '.xls*'}|Group-Object -Property Extension

Get-ChildItemコマンドレットでCドライブを再帰的に調べます。システムファイル等のファイルにアクセスしようとすると、権限によってはアクセスを拒否されることがあり、エラーメッセージを抑制するため、-ErrorAction SilentlyContinueを付与しています。

Where-Objectコマンドレットで拡張子をワイルドカードを使ってxls~に絞っています。

その結果を最後にGroup-Objectコマンドレットに渡します。グルーピングしたいプロパティを-Propertyパラメータで指定します。

終わりに

Excelの拡張子の割合を調べてみてました。完全にネタですが、まじめな話、Group-Objectコマンドレットをうまく使うと、Excelに頼っていた様々な計算がPowerShell上で色々と捗ります。

記事を見ていただいた方も、ぜひどのくらいの割合だったか、教えてください!

というわけで、ここまでお読みいただき、ありがとうございました。