|
手作業でフォルダの中のファイルの名前を1つずつExcelシートの
コピーペーストしていたところ、先輩からこのマクロボタンで一瞬でできるよ
と言われました。
おかげですぐに作業が終わったのですが、これを機にマクロを覚えようと勉強を始めました。
ただ、マクロが難解で私の持っている本ではおぼつかないのです。
先輩に聞きたいところですが、プロジェクトリーダーされていて多忙で、質問しにくいのです。
もしよろしければ1行ずつ何をしているのか解説いただいてもいいでしょうか。
Option Explicit
Public cnt, Pop As Integer
Sub macro1()
Dim FolderSpec As String
FolderSpec = FolderPath
cnt = 1
Pop = 1
If FolderSpec <> "" Then
Lists FolderSpec
End If
End Sub
Sub Lists(FolderSpec)
Dim File_Collection As Object
Dim File_List As Variant
Dim Folder_Collection As Object
Dim Folder_List As Variant
Set File_Collection = CreateObject("Scripting.FileSystemObject").GetFolder(FolderSpec).Files
'Foldor の名前をセルに入力
Cells(cnt, Pop) = FolderSpec
cnt = cnt + 1
For Each File_List In File_Collection
Cells(cnt, Pop + 1) = File_List.Name
cnt = cnt + 1
Next
Set Folder_Collection = CreateObject("Scripting.FileSystemObject").GetFolder(FolderSpec).SubFolders
For Each Folder_List In Folder_Collection
Pop = Pop + 1
Lists FolderSpec & "\" & Folder_List.Name
Next
Pop = Pop - 1
End Sub
Function FolderPath() As String
Dim Shell As Object
Set Shell = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 0, "C:\Documents and Settings\Others")
If Shell Is Nothing Then
FolderPath = ""
Else
FolderPath = Shell.Items.Item.Path
End If
End Function
|
|