Excelファイルを開かずにシート名を表示するツールを作ってみた

POPとかで大量にExcelファイルがあると前に使ったアレどこやっけー?というのが頻発するわけで、いちいちExcelファイルを開いて確認するのがめんどい今日この頃。ちゃんとわかりやすいファイル名付けろよプゲラwwとか言われそうだけど、それが店だけじゃなく本部も含め全員できたらそもそも苦労しないわけで(´・ω・`)

で、こないだExcelファイルを検索するソフトを拾ってきたんだが、扱ってるファイルがたいていサイズがデカイ&ファイルが大量にあるのでとにかく遅い。耐えられない。どうやらExcelコンポーネント使ってファイルを読みこんで検索というような処理をしてるっぽい。うーん、俺は内部のシート名がわかればそれでよいんだが。

というわけで、Excelファイルを開かずに内部のシート名の一覧が閲覧できるエクスプローラ風のソフトを作ってみた。こんなもの需要があるのか知らんが、なんか仕事でExcelファイルいっぱい使う誰かのためにこのへんにひっそり公開しておこう。

VBAとかExcelコンポーネントは一切使わず、Excelファイル全体を読み込まず、BIFF8形式で記述されてるらしいExcelファイルのバイナリを直接解析してシート名をぶっこ抜いてくるので軽快に動作します。イメージとしてはエクスプローラExcelファイルを選択した瞬間にシート名の一覧が閲覧できるかんじ。そのままダブルクリックでExcelで開くことも可。

C#で書いてるので、実行には別途.NET framework 2.0が必要↓
Download Microsoft .NET Framework 3.5 Service Pack 1 from Official Microsoft Download Center

ソフト自体の使い方はたぶん直感でわかるはず。左にツリービューがあるのでフォルダを選択し、中央でExcelファイルを選択すると、右にシート名の一覧が出る。選択中のExcelファイルをダブルクリックするとExcelで開く。

Excelファイルに使われてるBIFF8形式から直接シート名を取得する方法は以下のページを参考にしました。感謝感謝。
Office TANAKA - Excel VBA Tips[閉じたブックのシート一覧]