現在、excelのvbaでファイルリスト一覧を表示させるプログラムを作成しています。その際に、どのように実装したらよいかネットなどで調べてもわからないので質問させていただきました。当方プログラミング自体ほぼほぼ初心者で分かりやすく解説していただけると大変うれしいです。
実装したいこと
- for each文のループ中のWorksheets("ファイル一覧").Cells(IRow, 5) = ""ここの""の処理にファイルプロパティからコメントの取得したい。
- Worksheets("ファイル一覧").Hyperlinks.Add Anchor:=Cells(IRow, 7), Address:=strPath, TextToDisplay:=(フォルダ名)ここの処理の()の部分でフォルダ名を表示させてたい。
- ファイル一覧を表示させるのですがファイル名、フォルダ名、拡張子が以下の文字を含む場合は除外tmp,temp,bk,bak,~$, - コピー
ソースプログラムはこちらになります。
vba
1Option Explicit 2 3Public IRow As Variant 4Public number As Variant 5 6Sub サブフォルダを含むファイルデータを取得() 7 8 IRow = 1 9 number = 0 10 Sheets("ファイル一覧").Select 11 12 Call ファイル名取得("C:\Users\hi610\OneDrive\ドキュメント\temp") 13End Sub 14Sub ファイル名取得(strPath As Variant) 15 Dim FSO As Object, Folder As Object, File As Object, objDP As DocumentProperties 16 17 Set FSO = CreateObject("Scripting.FileSystemObject") 18 19 For Each File In FSO.GetFolder(strPath).Files 20 If Not number = 4 Then 21 IRow = IRow + 1 22 number = number + 1 23 Dim dps As DocumentProperties 24 Dim dp As DocumentProperty 25 Worksheets("ファイル一覧").Cells(IRow, 1).Value = number 26 Worksheets("ファイル一覧").Cells(IRow, 2) = FSO.GetBaseName(File.Path) 27 Worksheets("ファイル一覧").Cells(IRow, 3) = File.DateCreated 28 Worksheets("ファイル一覧").Cells(IRow, 4) = File.DateLastModified 29 Worksheets("ファイル一覧").Cells(IRow, 5) = "" 30 Worksheets("ファイル一覧").Hyperlinks.Add Anchor:=Cells(IRow, 6), Address:=File.Path, TextToDisplay:=File.Name 31 Worksheets("ファイル一覧").Hyperlinks.Add Anchor:=Cells(IRow, 7), Address:=strPath, TextToDisplay:=File.Path 32 Else 33 Exit For 34 End If 35 Next 36 37 For Each Folder In FSO.GetFolder(strPath).SubFolders 38 Call ファイル名取得(Folder) 39 Next 40 41 Set FSO = Nothing 42 Set Folder = Nothing 43 Set File = Nothing 44End Sub
自分で試したこと
フォルダ名を取得する処理ですがfor eachでfilesystemobjectのfilesプロパティを使用しているため、object.Nameではファイル名が表示されてしまう。なので二重ループにして(例:for each ~ .Folders)プロパティをフォルダ名を取得しようとしたがオブジェクトの参照ができなかった
一部の文字を除外することに関しましてはif not Like File.Name Like ".tmp" And File.Name "tmp."とfor each中にネストとしていったが処理が途中で終わってしまう。またこの場合、一部の文字を含むフォルダ名を除外する方法が検討もつかない。
ファイルプロパティからコメントを取得する方法は調べたがよくわからなかった。
現状このような感じです。誰かわかる方いらしたらご回答お願いします。
回答2件
あなたの回答
tips
プレビュー