GetChild

Option Explicit

Sub GetFileList()

Dim MyPath '自分のパス
Dim TargetPath '検索パス
Dim FolderDepth '検索深度

MyPath = ThisWorkbook.Path

'検索パスのチェック
TargetPath = Sheet1.Cells(1, 2)
If Dir(TargetPath, vbDirectory) = "" Then
'処理終了
Debug.Print "処理終了!検索パスのチェック"
Exit Sub
End If

'検索深度のチェック
FolderDepth = Sheet1.Cells(2, 2)
If FolderDepth > 3 Or FolderDepth < 1 Then
'処理終了
Debug.Print "処理終了!検索深度のチェック"
Exit Sub
End If

'--------------------
'ps1ファイル作成
'--------------------

'--------------------
'batファイル作成
'--------------------

'--------------------
'batファイルの実行
'https://vbabeginner.net/vba%E3%81%A7%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%EF%BC%88bat%EF%BC%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/
'--------------------
Dim dProcessId As Double
Dim sPath

sPath = MyPath & "\run.bat"
dProcessId = Shell(sPath)


Debug.Print "処理終了!"
End Sub

'====================
'csvファイルの取込
'https://qiita.com/YTANRK_BIZ/items/9ea2beff4837f5f7b93e
'https://www.tipsfound.com/vba/18014
'https://tonari-it.com/excel-vba-querytable-csv-property/
'====================
Sub GetCsvFile()

Dim MyPath '自分のパス
MyPath = ThisWorkbook.Path

Dim SetFileName
SetFileName = MyPath & "\FileList.csv"

'表クリア
Sheet2.Range("A2", Range("A2").SpecialCells(xlLastCell)).Clear

'CSVファイル取込
With Sheet2.QueryTables.Add(Connection:="text;" & SetFileName, Destination:=Sheets(TargetSheet).Range("A2"))
.TextFilePlatform = 65001 'UTF-8
.AdjustColumnWidth = False '列の幅を自動計算しない
.TextFileStartRow = 3 ' X行目から読み込み
.TextFileCommaDelimiter = True 'コンマ区切り
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 1) '文字列にする
.Refresh BackgroundQuery:=False 'シートに出力
.Delete ' CSV との接続を解除
End With

Debug.Print "処理終了!"
End Sub

'====================
'列を整える
'====================
Sub ColumnFormat()

Dim lastrowno '最終行
lastrowno = Cells(1, 1).End(xlDown).Row

Dim TargetPath '検索パス
TargetPath = Sheet1.Cells(1, 2)

'----------
'modeを整える(フォルダ/ファイル)
'----------
Sheet2.Range("F2", "F" & lastrowno).Formula = "=IF(LEFT(A2,1)=""d"",""フォルダ"",""ファイル"")"
Sheet2.Range("F2", "F" & lastrowno).Copy
Sheet2.Range("F2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheet2.Range("F2").Select

'----------
'親パスを整える
'----------
Sheet2.Range("E2", "E" & lastrowno).Formula = "=SUBSTITUTE(D2,""Microsoft.PowerShell.Core\FileSystem::"","""")"
Sheet2.Range("E2", "E" & lastrowno).Copy
Sheet2.Range("E2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheet2.Range("E2").Select

'----------
'階層を整える
'----------
Sheet2.Range("G2", "G" & lastrowno).Formula = "=LEN(SUBSTITUTE(E2,""" & TargetPath & """,""""))-LEN(SUBSTITUTE(SUBSTITUTE(E2,""" & TargetPath & """,""""),""\"",""""))+1"
Sheet2.Range("G2", "G" & lastrowno).Copy
Sheet2.Range("G2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheet2.Range("G2").Select

End Sub