Excel VBAでオブジェクト指向プログラミング(FSOを利用したExcelツール編)
■FileSystemObject(FSO)を利用したExcelツール
FileSystemObject(FSO)を利用したExcelツールをいくつかご紹介します。
⇒FSOの詳細については、Excel VBAでオブジェクト指向プログラミング(FSO編)を参照して下さい。
指定したフォルダの直下にあるフォルダの一覧を表示するExcelツール
行番号9で指定したフォルダの直下にあるフォルダをExcelワークシートに表示するツールです。
行番号11でフォルダのパスをExcelワークシートのA列にセットしています。
- Dim sht, fso, subfolder As Object
- Dim rcnt As Long
- Private Sub Sample1()
- Set sht = ActiveSheet
- sht.Cells.Clear
- rcnt = 0
- Set fso = New FileSystemObject
- For Each subfolder In fso.GetFolder(“C:\work").subfolders
- rcnt = rcnt + 1
- sht.Cells(rcnt, 1) = subfolder.path
- Next subfolder
- End Sub
指定したフォルダの配下にある全フォルダの一覧を表示するExcelツール
行番号9で指定したフォルダの配下にある全フォルダをExcelワークシートに表示するツールです。
行番号15でフォルダのパスをExcelワークシートのA列にセットしています。
- Dim sht, fso, subfolder As Object
- Dim rcnt As Long
- Private Sub Sample2()
- Set sht = ActiveSheet
- sht.Cells.Clear
- rcnt = 0
- Set fso = New FileSystemObject
- Call Sample2_sub(“C:\work")
- End Sub
- Public Sub Sample2_sub(path As String)
- For Each subfolder In fso.GetFolder(path).subfolders
- rcnt = rcnt + 1
- sht.Cells(rcnt, 1) = subfolder.path
- Call Sample2_sub(subfolder.path)
- Next subfolder
- End Sub
指定したフォルダの直下にあるファイルの一覧を表示するExcelツール
行番号9で指定したフォルダの直下にあるファイルをExcelワークシートに表示するツールです。
行番号11でファイルのパスをExcelワークシートのA列にセットしています。
- Dim sht, fso, file As Object
- Dim rcnt As Long
- Private Sub Sample3()
- Set sht = ActiveSheet
- sht.Cells.Clear
- rcnt = 0
- Set fso = New FileSystemObject
- For Each file In fso.GetFolder(“C:\work").files
- rcnt = rcnt + 1
- sht.Cells(rcnt, 1) = file.path
- Next file
- End Sub
指定したフォルダの配下にある全ファイルの一覧を表示するExcelツール
行番号9で指定したフォルダの配下にある全ファイルをExcelワークシートに表示するツールです。
行番号15でファイルのパスをExcelワークシートのA列にセットしています。
- Dim sht, fso, subfolder, file As Object
- Dim rcnt As Long
- Private Sub Sample4()
- Set sht = ActiveSheet
- sht.Cells.Clear
- rcnt = 0
- Set fso = New FileSystemObject
- Call Sample4_sub(“C:\work")
- End Sub
- Public Sub Sample4_sub(path As String)
- For Each file In fso.GetFolder(path).files
- rcnt = rcnt + 1
- sht.Cells(rcnt, 1) = file.path
- Next file
- For Each subfolder In fso.GetFolder(path).subfolders
- Call Sample4_sub(subfolder.path)
- Next subfolder
- End Sub
指定したフォルダの直下にあるファイルを別のフォルダにコピーするExcelツール
行番号9で指定したフォルダ1の直下にあるファイルを行番号10で指定したフォルダ2にコピー(バックアップ)するツールです。
行番号15~16でフォルダ1のファイル名と最終更新日時をExcelワークシートのA~B列にセット、行番号22でフォルダ2の同名ファイルの最終更新日時をExcelワークシートのC列にセットし、B列≠C列の場合は行番号26でフォルダ1のファイルをフォルダ2にコピーしています。
- Dim sht, fso, file As Object
- Dim Folder1Path, Folder2Path As String
- Dim rcnt, i As Long
- Private Sub Sample5()
- Set sht = ActiveSheet
- sht.Cells.Clear
- Set fso = New FileSystemObject
- Folder1Path = “C:\work\folder1\"
- Folder2Path = “C:\work\folder2\"
- rcnt = 0
- For Each file In fso.GetFolder(Folder1Path).files
- rcnt = rcnt + 1
- sht.Cells(rcnt, 1) = file.Name
- sht.Cells(rcnt, 2) = file.DateLastModified
- Next file
- For i = 1 To rcnt
- If fso.FileExists(Folder2Path & sht.Cells(i, 1)) = True Then
- Set file = fso.GetFile(Folder2Path & sht.Cells(i, 1))
- sht.Cells(i, 3) = file.DateLastModified
- End If
- If sht.Cells(i, 2) <> sht.Cells(i, 3) Then
- sht.Cells(i, 3).Interior.Color = RGB(0, 255, 255)
- fso.CopyFile Folder1Path & sht.Cells(i, 1), Folder2Path
- End If
- Next i
- End Sub
国本温子(著),緑川吉行(著),できるシリーズ編集部(著)
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ
大村あつし(著),古川順平(著)
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ
高橋宣成(著)
出版社:技術評論社
発売日:2019/11/25
単行本(ソフトカバー):B5変形判/576ページ
出版社:技術評論社
発売日:2019/11/25
単行本(ソフトカバー):B5変形判/576ページ
ディスカッション
コメント一覧
まだ、コメントがありません