ファイル・フォルダ一覧取得ツール_VBAファイルリスト編
2022年09月28日
「ファイル・フォルダ一覧取得ツール~Dirコマンドの結果から生成~」シリーズ
①操作編
②VBS編
③VBAファイルリスト編【今回】
④VBAフォルダリスト編
ファイル・フォルダ一覧取得ツールの続編その2。
今回は、出力されたテキストファイルからファイルリスト表示するVBA。
実は「ファイル一覧解析マクロ」で書いたマクロとメインとなる処理はほとんど同じ。
違いは以下の通り。
・フォルダ内のDirリスト.txtファイルをデフォルトとして、別ファイルを指定するとシート挿入する
・選択したDirファイルの情報を1,2行目に表示する(未解析ファイル有無の確認)
・リファクタリングで可読性や汎用性が向上している
ソースコードに入る前に、Dirコマンドの結果について構造を説明。
①操作編
②VBS編
③VBAファイルリスト編【今回】
④VBAフォルダリスト編
ファイル・フォルダ一覧取得ツールの続編その2。
今回は、出力されたテキストファイルからファイルリスト表示するVBA。
実は「ファイル一覧解析マクロ」で書いたマクロとメインとなる処理はほとんど同じ。
違いは以下の通り。
・フォルダ内のDirリスト.txtファイルをデフォルトとして、別ファイルを指定するとシート挿入する
・選択したDirファイルの情報を1,2行目に表示する(未解析ファイル有無の確認)
・リファクタリングで可読性や汎用性が向上している
ソースコードに入る前に、Dirコマンドの結果について構造を説明。
以下は、C:\Dirtest に「xxファイル一覧」フォルダを配置して
dir_cmd.vbsで出力したコマンドを実行した際に出力されたファイル。
'-----------------------------------------------------------ここから
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 4270-BB9E です
C:\Dirtest のディレクトリ ①「のディレクトリ」で終わる
2022/06/24 13:18 18,449,249 CMD_DIR結果の解析.xls ②5文字目、8文字目が「/」
2022/04/08 23:22 10,671,755 Dirリスト.txt ②
2 個のファイル 29,121,004 バイト ③「バイト」で終わり、「個のファイル」を含む
C:\Dirtest\xxファイル一覧 のディレクトリ①
2019/12/07 18:08 1,142 Command Prompt.lnk ②
2022/08/16 13:04 84 desktop.ini ②
2022/09/18 02:26 1,030 dir_cmd.vbs ②
2022/09/22 22:48 0 Dirリスト.txt ②
2022/09/21 00:52 49,873 xx_ファイル・フォルダ一覧_v17.xlsm ②
2022/09/22 22:25 165 ~$xx_ファイル・フォルダ一覧_v17.xlsm ②
2022/08/28 00:05 165 ~$xx_ファイル一覧_v11.xlsm ②
7 個のファイル 52,459 バイト ③
ファイルの総数: ④「 ファイルの総数:」のみの行
9 個のファイル 29,173,463 バイト ④の次の行
0 個のディレクトリ 58,607,783,936 バイトの空き領域 ④の次の次の行
'-----------------------------------------------------------ここまで
①は、解析対象のフォルダ。解析対象のフォルダになにもファイルがないと、
最初に出現するフォルダ名が解析対象フォルトだじゃなくなる点に注意。
②は、①の中にあるファイルの一覧。名前とサイズと更新日時を取得できる。
③は、①の中のファイル数とファイルサイズの合計。ファイルリスト作成時には使用しない。
ファイルの末尾まで①②・・・②③の繰り返し。
④は、ファイルの末尾の目印。
Dirコマンドが最後まで実行されていれば、ドライブの空き容量が表示される。
上記を踏まえて、マクロの概要。
出力される行数がわからないので、内容を辞書型配列を使う。
ファイルのフルパスはユニークなので、フルパスをキーにして出力したい内容を値に格納。
キー(Keys)と値(Items)を2次元配列に格納してエクセルに貼り付ける。
オートフィルタとウィンドウ枠の固定と罫線を設定する。
更新日時でソートして、No.を振りなおして完成。
ざっくり言うとこんだけ。
ソースについての解説はコメント参照!
ってコメントをいれてるうちに同じような処理を別モジュールでやってる箇所を発見。
いじっているうちにバージョン19まで上がってしまった。。。
まだ記事にしていないDirリストについては
rootフォルダの判断方法が脆弱なので要修正です。
次回、修正版をアップします。
というわけで、以下ソース。エクセルファイルのダウンロードは こちら。
xlsmファイルはちょっと・・・という方は、以下よりxlsxファイルをダウンロードし、
別途ダウンロードしたソースコードをコピペしてください。
・ xlsxファイル
・ ソースコード.bas
PR
Comment