Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Excel 2016)
VBAで指定のフォルダのPDFを取得し、別フォルダに保存することはできますか?
投稿日時: 21/03/08 10:53:50
投稿者: だいふくもち

いつもこちらのコミュニティにはお世話になっております。
現在VBAを勉強中の者です。
(先ほど違うジャンルのスレに投稿しておりました…申し訳ありません…)
  
PDFファイルを指定のフォルダから、別のフォルダにコピーしたいです。
(できれば名称を変えたいですが、変えれなくでも結構です)
  
With CreateObject("Shell.Application")
    .ShellExecute ThisWorkbook.Path & "\ファイル名.pdf"
    .SaveAs fileName:=保存したいフォルダのパス & "\ファイル名.pdf"
    .Close
End With
  
上記のマクロを実行すると、3行目で以下のようなエラーメッセージが表示されます。
  
実行時エラー '438 オブジェクトは、このプロパティまたはメソッドをサポートしておりません
  
エラー内容を調べてみると、オブジェクトに対して存在しないプロパティや
メソッドを使用したときに出るエラーのようですが、
PDFのような外部ファイルをVBAで操作する場合、
PDFファイルを取得し、ファイル名を変えて保存するといった操作は
どのようなコードを書けば実行できますでしょうか?
  
お手数をお掛けしますが、どなたかご存じの方がいらっしゃいましたら
ご教授いただけますと幸いです。

回答
投稿日時: 21/03/08 11:31:01
投稿者: WinArrow
投稿者のウェブサイトに移動

FSOを使って、複写すればよいと思います。
複写時には、複写先に別名を指定することもできます。

回答
投稿日時: 21/03/08 11:38:29
投稿者: WinArrow
投稿者のウェブサイトに移動

FSOを使わなければいけないということはありませんが、
 
単純ナードで
 
Filecopy 転送元ファイルパス 転送先ファイルパス
 

投稿日時: 21/03/08 11:41:14
投稿者: だいふくもち

>WinArrow様
 
教えていただきありがとうございます!
なるほど、FileSystemObjectを活用すればいいのですね!
とても勉強になりました。
 

Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile ThisWorkbook.Path & "\ファイル名.pdf", 保存先 & "任意のファイル名.pdf"

以上で無事にコピーすることができました。
ご教授いただき本当にありがとうございましたm(_ _)m

回答
投稿日時: 21/03/19 16:09:49
投稿者: WinArrow
投稿者のウェブサイトに移動

解決したのでしたら
閉じてくださいね・・・

トピックに返信