dポイントプレゼントキャンペーン実施中!

完全な初心者でいろいろ調べたのですがわからないので教えて下さい。
サブフォルダー内のPDFファイルのみを別フォルダにコピーするVBAを
ご教示ください。お願いします。

質問者からの補足コメント

  • 説明が悪くて申し訳ありません。
    Aフォルダ内にB,C,D,E,F,,,,,,とサブフォルダーがあり、各サブフォルダー内に様々な種類のファイルがあるところ、その中のPDFファイルのみをZフォルダーにコピーしたいものです。

      補足日時:2016/10/29 19:26

A 回答 (5件)

No.3です。



CドライブのAフォルダの中のサブフォルダ内のPFDファイルを、CドライブのZフォルダにコピーするように変更しました。

Sub Sample()
Const fpath1 As String = "C:\A\"
Const fpath2 As String = "C:\Z\"
Dim fso As Object
Dim subfpath As String
Set fso = CreateObject("Scripting.FileSystemObject")
subfpath = Dir(fpath1, vbDirectory)
Do Until subfpath = ""
If subfpath <> "." And subfpath <> ".." Then
fname = fpath1 & subfpath & "\*.pdf"
fso.CopyFile fname, fpath2
End If
subfpath = Dir()
Loop
Set fso = Nothing
End Sub
    • good
    • 5
この回答へのお礼

完璧なご回答まことにありがとうございました。

お礼日時:2016/10/29 22:04

こんにちは。



'コマンドプロンプトで。

Sub TestCopy()
'コピー元
Const SOURCE As String = "C:\Temp\Test1\"
'コピー先
Const DESTIN As String = "C:\Temp\Test2\"
Dim strCMD As String

strCMD = "Cmd /c copy /-y " & SOURCE & "*.pdf " & DESTIN
'/-y は、上書き確認
Shell strCMD

End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2016/10/29 22:04

サンプルです。



下記に元のフォルダを
Const fpath1 As String = "D:\Data\"

下記にコピー先のフォルダを
Const fpath2 As String = "D:\Data\Work\"

それぞれ指定して下さい。最後に \ をつけるのを忘れないように。


Sub Sample()
Const fpath1 As String = "D:\Data\"
Const fpath2 As String = "D:\Data\Work\"
Dim fname As String
fname = Dir(fpath1 & "*.pdf", vbNormal)
Do Until fname = ""
FileCopy fpath1 & fname, fpath2 & fname
fname = Dir()
Loop
End Sub
    • good
    • 0

あ、ごめん。


忘れて。
    • good
    • 0

VBAでもいいですけど、バッチの方が手軽ですよ

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A