ダウンロード

ファイル一覧作成

VBScriptを使用して、指定フォルダ内のファイルリストを作成し、
ディスプレイに表示後、テキストファイル保存します。


フォルダの選択と一覧表の表示

メニュー
概要
機能
処理の流れ
補足
プログラム
リファレンス
関連項目
サンプルファイルのダウンロード
リンクリスト
全て展開 折り畳む


概要

選択ダイアログから選択したフォルダ内に存在する、全てのファイルの一覧表をディスプレイに表示し、同時にテキストファイル保存します。

単にフォルダ内のファイル一覧表を作成するだけであれば、下記のように20ステップ程で記述できます。

最簡素ルーチン - fList-min.vbs


  
ただし、実際に使用するとなると、エラー処理や並べ替え/付属情報付加、ファイル出力など、様々な処理が必要となってきます。

機能

一覧表の作成

・ファイルの存在するフォルダは「フォルダ参照」ダイアログボックスから選択
・昇順ソート(並べ替え)
・作成した一覧表をディスプレイ(MsgBox)に表示
・一覧表をテキストファイルに保存および表示
継続して作業を続行可

カスタマイズ

・スイッチにより、ファイルサイズ/更新年月日/更新時刻の付加を指定(FLG_OPTION)
・出力ファイル名/同フォルダパスの指定(OUT_File,OUT_FOLDER)
・出力ファイルの文字コードセットの指定(Unicodeファイル名対応 OUT_FORMAT
'-------------------------------------------------------
Const FLG_OPTION = 1               '取得項目 1:filename         2:size(kbyte)
                                   '         4:date(yyyy/mm/dd) 8:time(hh:nn:ss)
Const OUT_File   = "fList.txt"     '出力ファイル
Const OUT_FOLDER = "MyDocuments"   'Desktop,MyDocuments 参考:https://excelwork.info/excel/specialfolder/
Const OUT_FORMAT = 0               '0:Ascii , 1:Unicode
'-------------------------------------------------------
    

・ソート(並べ替え)は降順へも変更可

ソースコードの分割

インクルード方式によりメインと複数のサブファイルに分割(共通/再利用可)


処理の流れ



ダウンロード後に展開して出来るフォルダ(fList-code)内の「fList.vbs」をダブルクリックします。

1.ファイルリストを作成するフォルダ選択ダイアログボックス表示



2.メッセージボックスにファイルリストを表示


3.テキストファイルに保存し、表示



4.継続確認

はい」をクリックすると1.フォルダ選択ダイアログボックス表示へ
 「いいえ」で処理終了

補足

ファイル名の文字コード

ファイル名の文字コードセットは、既定では「Ascii」となっています。
Unicodeを使用したファイル名(ハングルやアラビア文字、ドイツ語等)の場合はエラー(下図)が発生します。

代替可能であれば、Asciiの文字に変更してください。
Unicodeファイル名で使用したい場合は、テキストファイル保存時の文字コード指定を「Unicode」にします。
下記スイッチで指定可
'-------------------------------------------------------
Const FLG_OPTION = 1               '取得項目 1:filename         2:size(kbyte)
                                   '         4:date(yyyy/mm/dd) 8:time(hh:nn:ss)
Const OUT_File   = "fLisst.txt"    '出力ファイル
Const OUT_FOLDER = "MyDocuments"   'Desktop,MyDocuments 参考:https://excelwork.info/excel/specialfolder/
Const OUT_FORMAT = 0               '0:Ascii , 1:Unicode
'-------------------------------------------------------
    

プログラム


メインルーチン - fList.vbs


    Include内で使用しているメソッド/ステートメントについては、Include(strFile)についてを参照
注意:Includeルーチン自体の外部ファイル化は出来ません。

サブルーチン/関数

全て展開 折り畳む

ファイル選択ダイアログ - fList-getRootPath.vbs


    

ファイルリストを配列に作成 - fList-makeFileList.vbs


    

指定フォルダパス内のファイルリストを返す - fList-makeFileList.vbs


    

出力関数(エラー処理用) - fList-funcWriteLine.vbs

.

    

共通関数 - fList-common.vbs


    

リファレンス


Include(strFile)について

外部のVBScriptファイルを読み込んで、スクリプトとして実行します。
「フォルダの参照」ダイアログの仕様 - Shell.BrowseForFolder method

ReadAllの構文

oFolder = Shell .BrowseForFolder( Hwnd , sTitle , iOptions [, vRootFolder ])
ファイル全体を読み取って、結果の文字列を返します。
ReadAllの仕様

ExecuteGlobalステートメント

oFolder = Shell .BrowseForFolder( Hwnd , sTitle , iOptions [, vRootFolder ])
ExecuteGlobalは、受っとった文字列をスクリプトとして解釈して実行します。
ExecuteGlobalステートメントの仕様

フォルダの参照 ダイアログ - .BrowseForFolder

フォルダの参照」ダイアログを表示する
「フォルダの参照」ダイアログの仕様 - Shell.BrowseForFolder method

BrowseForFolderの構文

oFolder = Shell .BrowseForFolder( Hwnd , sTitle , iOptions [, vRootFolder ])
Hwnd       :必須。ダイアログボックスの親ウィンドウのハンドル。
sTitle     :必須。ダイアログボックス内に表示される文字列
iOptions   :必須。BROWSEINFO 構造体のulFlagsメンバーからなる値リストの組み合わせ。
vRootFolder:省略可。ダイアログボックスで使用する、ルートフォルダを指定する。
      
iOptions
Const BIF_RETURNONLYFSDIRS = &H1       ファイルシステムのフォルダ(仮想フォルダ以外)のみ選択可
Const BIF_DONTGOBELOWDOMAIN = &H2      ドメイン下のネットワークフォルダを含めない
Const BIF_STATUSTEXT = &H4             ステータスバーを表示。
Const BIF_RETURNFSANCESTORS = &H8      選択不可
Const BIF_EDITBOX = &H10               フォルダ名を指定、テキストボックスも表示
Const BIF_VALIDATE = &H20              ?
Const BIF_BROWSEFORCOMPUTER = &H1000   コンピュータの検索。ssfNETWORKと併用。
Const BIF_BROWSEFORPRINTER = &H2000    プリンタの検索。ssfPRINTERS と併用。
Const BIF_BROWSEINCLUDEFILES = &H4000  ファイルも選択できるようになる。
      

特殊フォルダを取得(wsh.SpecialFolders)

Windows の特殊フォルダ(マイドキュメントやデスクトップなど)のパスを取得する
特殊フォルダを取得 - wsh.SpecialFolders の仕様

SpecialFoldersの構文

wsh.SpecialFolders(findex)
wsh     Windows Scripting Host(WSH)のオブジェクト
findex  取得したい特殊フォルダ(文字列または値)を指定
      
findex
文字列を指定する場合は、「"」で囲む("AllUsersDesktop")

文字列           値  内容
――――――――――――――――――――――――――――――――
AllUsersDesktop   0  すべてのユーザーに共通のデスクトップ
AllUsersStartMenu 1  すべてのユーザーに共通のスタートメニュー
AllUsersPrograms  2  すべてのユーザーに共通のプログラムメニュー
AllUsersStartup   3  すべてのユーザーに共通のスタートアップ
Desktop           4  ログインユーザーのデスクトップ
AppData           5  ログインユーザーのアプリ用データ
PrintHood         6  ログインユーザーのプリンタ
Templates         7  ログインユーザーの新規作成のテンプレート
Fonts             8  フォント
NetHood           9  ログインユーザーのネットワーク
Desktop          10  ログインユーザーのデスクトップ
StartMenu	 11  ログインユーザーのスタートメニュー
SendTo           12  ログインユーザーの送る
Recent           13  ログインユーザーの最近使ったファイル
Startup          14  ログインユーザーのスタートアップ
Favorites        15  ログインユーザーのお気に入り
MyDocuments      16  ログインユーザーのマイドキュメント
Programs         17  ログインユーザーのプログラムメニュー
――――――――――――――――――――――――――――――――
      

OpenTextFileメソッド

指定したファイルを開き、開いたファイルの読み取り書き込み、または追加書き込みに使用できる TextStream オブジェクトを返す。

OpenTextFileメソッドの構文

object.OpenTextFile (filename, [ iomode, [ create, [ format ]]])
object   必須。 常に FileSystemObject の名前。
filename 必須。 開くファイルを識別する文字列式。
iomode   省略可能。 入力/出力モード。 ForReading、ForWriting、または ForAppending のいずれかの定数を指定。
create   省略可能。 filename で指定したファイルが存在しない場合に新しいファイルを作成できるかどうかを示す ブール値。
                    新しいファイルを作成する場合は True、作成しない場合は False を指定します。 既定値は False。
format   省略可能。 開くファイルの形式を示す Tristate の 3 つの値のいずれか。 省略すると、ASCII 形式でファイルが開く。
      
format
TristateUseDefault -2  システムの既定の設定でファイルを開く。
TristateTrue       -1  Unicode 形式でファイルを開く。
TristateFalse       0  Ascii 形式でファイルを開く。
      

getFolderについて

指定したパス内のフォルダーに対応する folder オブジェクトを返す。 GetFolderメソッドについて

Getfolderの構文

object.Getfolder(folderspec)
object      必須。FileSystemObject の名前。
folderspec  必須。特定のフォルダーへのパス(絶対または相対)。存在しないパスを指定するとエラーにる。
      

folderブジェクト

コレクション
Files    指定したフォルダー内のすべてのファイルのコレクションを返す。
Folders  Folder オブジェクトに含まれるすべての Folder オブジェクトのコレクション。
      
Filesコレクション
フォルダー内のすべての File オブジェクト
File オブジェクト
Fileオブジェクトのプロパティ
――――――――――――――――――――――――――――――――――――――――――
Attributes       ファイルの属性を設定するか返す。
DateCreated      ファイルが作成された日付と時刻を返す。
DateLastAccessed ファイルに最後にアクセスした日付と時刻を返す。
DateLastModified ファイルの最終更新日時を返す。
Drive            ファイルまたはフォルダーがあるドライブのドライブ文字を返す。
Name             ファイルの名前を設定するか返す。
ParentFolder     ファイルの親のフォルダー オブジェクトを返す。
Path             ファイルのパスを返す。
ShortName        ファイルの短い名前を返す。
ShortPath        ファイルの短いパスを返す。
Size             ファイルのサイズをバイト単位で返す。
Type             ファイルの種類を返す。
――――――――――――――――――――――――――――――――――――――――――
      


関連項目

VBAによるファイルリスト/フォルダリストの作成/再帰検索/中止処理

×
PageTop