分かりやすく、使いやすく。

フォルダ内のフォルダ一覧を取得する

スポンサーリンク

VBScript でフォルダ内のフォルダオブジェクトの一覧を取得するには、 Folder オブジェクトの SubFolders プロパティを使用します。

以下のサンプルコードでは、 "c:\temp" 内にあるファイルのオブジェクト一覧を取得し、ファイル名を表示します。

VBScript(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Option Explicit
 
Dim objFileSys
Dim objFolder
Dim objSubFolder
 
'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
 
'c:\temp フォルダのオブジェクトを取得
Set objFolder = objFileSys.GetFolder("c:\temp")
 
'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
For Each objSubFolder In objFolder.SubFolders
    '取得したフォルダの名前を表示
    WScript.Echo objSubFolder.Name
Next
 
Set objSubFolder = Nothing
Set objFileSys   = Nothing 

上記はフォルダ名を 1 個ずつダイアログ表示します。もし取得したフォルダ名の一覧をファイルに出力したい場合、サンプルコードは以下の通りです。このサンプルコードを実行すると、実行した vbs ファイルと同じ場所に log.txt というファイルが作成され、フォルダ名の一覧が出力されます。

VBScript(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
 
Dim objFileSys
Dim objFolder
Dim objSubFolder
Dim objOutputTextStream
 
'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
 
'ログ出力用 TextStream オブジェクトを作成
'第2引数は 1 :読み取り、2 :上書き、3 :追記。
Set objOutputTextStream = objFileSys.OpenTextFile("log.txt", 2, True)
 
'c:\temp フォルダのオブジェクトを取得
Set objFolder = objFileSys.GetFolder("c:\temp")
 
'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
For Each objSubFolder In objFolder.SubFolders
    'ファイル名を取得し、ログファイルに出力
    objOutputTextStream.WriteLine objSubFolder.Name
Next
 
'TextStream は Close を忘れずに
objOutputTextStream.Close
 
Set objOutputTextStream = Nothing
Set objSubFolder = Nothing
Set objFileSys   = Nothing 
スポンサーリンク