No.1ベストアンサー
- 回答日時:
メインフォルダの名前を1行目で定義しています。
適宜変更して下さい。「メインフォルダにおいてあるファイル」というのはエクセルファイルのみかどうか
不明でしたので、とりあえずどんなファイルでもコピーする事にしました。
エクセルファイルのみを対象にしたい場合は、
fName = Dir(MainDir) の行を
fName = Dir(MainDir & "*.xls") に変えて下さい。
Const MainDir As String = "c:\main\"
Dim fCnt, cpCnt As Integer
Sub MainFileSelect()
Dim fName As String
fCnt = 0
fName = Dir(MainDir)
' fName = Dir(MainDir & "*.xls")
Do Until fName = ""
If (GetAttr(MainDir & fName) And vbDirectory) <> vbDirectory Then
fCnt = fCnt + 1
Cells(fCnt, 1).Value = fName
End If
fName = Dir
Loop
Call MainFileCopy(MainDir)
MsgBox (CStr(fCnt) & "個のファイルを合計" & CStr(cpCnt) & "回コピーしました。")
End Sub
Sub MainFileCopy(targetDir As String)
Dim rIdx, dIdx, dCnt As Integer
Dim sDir As String
Dim sDirN(300) As String
sDir = Dir(targetDir, 22)
Do Until sDir = ""
If (GetAttr(targetDir & sDir)) = 16 Then
If (sDir <> ".") And (sDir <> "..") Then
dCnt = dCnt + 1
sDirN(dCnt) = sDir
End If
End If
sDir = Dir()
Loop
For dIdx = 1 To dCnt
Call MainFileCopy(targetDir & sDirN(dIdx) & "\")
Next
If targetDir <> MainDir Then
For rIdx = 1 To fCnt
FileCopy MainDir & Cells(rIdx, 1).Value, targetDir & Cells(rIdx, 1).Value
cpCnt = cpCnt + 1
Next
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- ソフトウェア フォルダ内の全サブフォルダ内のファイルパスをサブフォルダ毎に行を分けてリスト化したい 1 2022/11/13 10:27
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/10/26 17:14
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
エクセルのハイパーリンクがコ...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
FTPとファイルコピーの違いにつ...
-
VB6でのファイルコピーの終了検...
-
最新更新日のBATファイルコピー...
-
開いている別のファイルにExcel...
-
バッチファイル 別ファイルにリ...
-
Vba初心者です。下記のコード助...
-
VB6でExcelシートのコピー、貼付け
-
FSO.CopyFileでのエラー無視方法
-
同じファイル名 上書きしないフ...
-
xcopyでのバッチコピー方法でコ...
-
Gitについて質問。 クローンし...
-
DOSコマンドのコピー完了判定
-
エクセルのマクロについて教え...
-
マインクラフトPCをプレイしよ...
-
指定した時間になったらファイ...
-
バッチファイルのコピーで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
エクセルのハイパーリンクがコ...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
Vba初心者です。下記のコード助...
-
Excelのマクロについて教えてく...
-
エクセル2010、図が大きすぎま...
-
バッチファイル 別ファイルにリ...
-
[エクセル]コピーするとオブジ...
-
エクセルVBAで開いているファイ...
-
パワポでスライドをコピーでき...
-
ファイルサーバ上のファイルが...
-
xcopyでのバッチコピー方法でコ...
-
Excelのマクロについて教えてく...
-
FTPとファイルコピーの違いにつ...
-
Excelのマクロについて教えてく...
-
バッチファイルのコピーで
-
bat 同名ファイルコピー時にリ...
-
アクセス クエリを別のファイ...
-
同じファイル名 上書きしないフ...
おすすめ情報