【入門編】【台帳自動化】FSOで収集したファイル属性(パス・サイズ・作成日)をCSV出力しファイル管理台帳を作成 – VBScript (Visual Basic Scripting Edition)解析バイブル

スポンサーリンク

こんにちは。現場で泥臭い自動化を積み重ね、今はシステム運用の自動化アーキテクチャを設計している「先輩」です。

今日は、多くの運用担当者が一度は直面する「ファイル管理」の壁を、VBScript(FSO)でスマートに乗り越える方法を伝授します。マクロの記録で生成された巨大なコードに頼るのはもう終わり。メモリ効率を極め、再利用性を高めた「真の自動化ツール」を一緒に作りましょう。

—

なぜ「FSO」なのか? その本質を理解しよう

VBScriptでファイル操作を行う際、避けて通れないのが FileSystemObject (FSO) です。

なぜこれを使うのか? それは、OSの深層部分(Windowsのファイルシステム)を、まるで自分の手足のように操れるからです。`Scripting.FileSystemObject` は、単なる命令の集合体ではありません。OSとの対話窓口です。

今回のミッション:ファイル属性の「見える化」

今回作成するツールは、指定フォルダ配下の全ファイルを巡回し、以下のスペックをCSVとして書き出します。

  • フルパス
  • ファイルサイズ(バイト単位)
  • 作成日時
  • 最終アクセス日時

—

実践コード:高速・堅牢な「ファイル台帳生成スクリプト」

以下のコードをメモ帳に貼り付け、`.vbs` という拡張子で保存してください。これがあなたの最強の武器になります。

‘ FileInventory.vbs
‘ 運用現場で「使える」ファイルリスト生成ツール

Option Explicit ‘ 変数宣言を強制し、バグを未然に防ぐ

Dim fso, targetFolder, outputFile
Dim objFolder, objFile
Dim csvFile

‘ — 設定エリア —
Dim rootPath : rootPath = “C:\TargetFolder” ‘ 収集したいフォルダパス
Dim outputPath : outputPath = “C:\Inventory.csv” ‘ 出力先
‘ —————-

Set fso = CreateObject(“Scripting.FileSystemObject”)

‘ 書き込み用ファイルの作成(True: 上書き許可)
Set csvFile = fso.CreateTextFile(outputPath, True)

‘ ヘッダーの書き込み
csvFile.WriteLine “ファイル名,パス,サイズ(Byte),作成日時,最終アクセス日時”

‘ 再帰的な処理の呼び出し
Set targetFolder = fso.GetFolder(rootPath)
ProcessFolder targetFolder

csvFile.Close
MsgBox “完了しました!” & vbCrLf & “出力先: ” & outputPath

‘ フォルダを巡回する再帰関数
Sub ProcessFolder(folder)
Dim subFolder, file

‘ ファイル情報の取得
For Each file In folder.Files
csvFile.WriteLine “””” & file.Name & “””,””” & file.Path & “””,” & _
file.Size & “,” & file.DateCreated & “,” & _
file.DateLastAccessed
Next

‘ サブフォルダがあれば再帰的に潜る
For Each subFolder In folder.SubFolders
ProcessFolder subFolder
Next
End Sub

—

ここが「プロ」のこだわり:3つのポイント

1. `Option Explicit` は開発者の良心

VBScriptは変数宣言なしでも動いてしまいますが、それは「スペルミスでバグが発生しても沈黙する」ことを意味します。`Option Explicit` を書くことで、定義していない変数を即座に指摘させましょう。これは「事故を防ぐためのガードレール」です。

2. 再帰処理(Recursion)の美学

`ProcessFolder` 関数の中で、自分自身を呼び出していますね。これが「再帰」です。フォルダが何階層あっても、この仕組みなら自動的に最深部まで探しに行きます。コードが短く、かつどんな複雑なフォルダ構成にも対応できる。これが自動化エンジニアの嗜みです。

3. ダブルクォーテーションの扱い

CSV出力時にパスやファイル名にカンマが含まれていると、Excelで開いた際に列がズレます。`”””” & file.Name & “”””` のようにダブルクォーテーションで囲むことで、Excel側で正しく「一つの文字列」として解釈させる工夫をしています。

—

陥りやすい罠と対策

  • 権限エラー(Permission Denied):

システムフォルダ(`C:\Windows`など)を読みに行くと、アクセス権限で止まることがあります。ツールを実行する際は「管理者として実行」するか、アクセス権のあるフォルダを指定してください。

  • ファイルが開かれている:

Excelで出力先のCSVを開いたままスクリプトを実行すると、「書き込み禁止」でエラーになります。実行前には必ずファイルを閉じる習慣を。

—

先輩からのアドバイス

VBScriptは、今や「古い」と言われることもあります。しかし、「Windows環境さえあれば、何もインストールせずに即座に動く」というその身軽さは、クラウド時代になっても決して色褪せません。

まずはこのコードを動かし、自分の手でフォルダ構成をリスト化する体験をしてください。それが、自動化の世界へ踏み出す第一歩です。

ここをクリアしたあなたは、もう「マクロの記録」に頼るだけの初心者ではありません。「OSを支配するエンジニア」の入り口に立っています。次は何を自動化しましょうか? 応援していますよ。

タイトルとURLをコピーしました