質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

3234閲覧

FileSystemObjectのCopyFolderメソッドでプロシージャの呼び出し、または引数が不正です。

circular2016

総合スコア52

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/08/14 12:03

前提・実現したいこと

VBAで、指定のフォルダ配下を新規フォルダとしてバックアップしたい。
FileSystemObjectのCopyFolderメソッドを使って試みています。

発生している問題・エラーメッセージ

実行時エラー:5 プロシージャの呼出し、または引数が不正です。

該当のソースコード

VBA

1'バックアップ作成(フォルダ) 2Sub BackUp_Folder() 3 4 'On Error GoTo Catch 5 6 Dim FolderName 7 FolderName = Now() 8 9 'バックアップ後のフォルダ名を作成 10 FolderName = Format(FolderName, "yyyymmddhhmm") 11 12 'バックアップ元とバックアップ後のフォルダパスを設定します 13 Dim Moto, Saki As String 14 Moto = ThisWorkbook.Path 'バックアップ元のフォルダパス 15 Saki = ThisWorkbook.Path & "\" & FolderName 'バックアップ後のフォルダパス 16 Debug.Print Moto 17 Debug.Print Saki 18 19 '参照設定 20 Dim FSO As Object 21 Set FSO = CreateObject("Scripting.FileSystemObject") 22 If FSO Is Nothing Then 23 Debug.Print ("DLL が存在しません") 24 Exit Sub 25 End If 26 27 'フォルダをコピーします 28 'Moto・・・バックアップ元フォルダ名("C:\○○○\○○○") 29 'Saki・・・バックアップ先フォルダ名("C:\○○○\○○○") 30 'False・・・上書き禁止(True:上書き許可) 31 Debug.Print "コピー開始" 32 FSO.CopyFolder Moto, Saki, False 33 Debug.Print "コピー終了" 34 Set FSO = Nothing 35 36'Catch: 37 ' エラー処理 38 ' Debug.Print ("エラー") 39 ' Set FSO = Nothing 40 41End Sub 42

試したこと

1,公式ドキュメント↓を見てみましたが、引数に問題があるとは思えませんでした。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/copyfolder-method

2、他サイト(例えば下記)も見てみましたが、書き方に相違があるとは思えませんでした。
https://www.tipsfound.com/vba/18019

3、フォルダ名の財政を「zaisei」にしてみても変わりありませんでした。

4、Call FSO.CopyFolder(Moto, Saki, False)
にしてみましたが、変わりありませんでした。

5, Call FSO.CopyFolder(Moto, Saki)
にしてみましたが、変わりありませんでした。

6, FSO.CopyFolder Moto, Saki
にしてみましたが、変わりありませんでした。

※参照設定を使う手もありますが、他の人のPCでも設定なしで即実行できるようにしたいため、敢えて使いたくありません。

補足情報(FW/ツールのバージョンなど)

コンソールの出力
C:\Users\ユーザー\Documents\財政\2021
C:\Users\ユーザー\Documents\財政\2021\202108142051
コピー開始

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

コピー先がコピー元のサブフォルダーになる形のフォルダーコピーはできないかと思います。
バックアップ先のフォルダーを、C:\Users\ユーザー\Documents\財政\2021 以下ではない場所にして試してみてください。

投稿2021/08/14 15:28

segavvy

総合スコア958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

circular2016

2021/08/16 12:28

ありがとうございます。 その通りでした!! ベストアンサーですが、申し訳ありませんが、具体的な修正策を提示頂いたjinojiさんにさせて頂きました<(_ _)>
segavvy

2021/08/17 04:46

いえいえ、解決できてよかったです!
guest

0

ベストアンサー

バックアップ先を変えたらどうでしょうか。

VBA

1Saki = ThisWorkbook.Path & "..\" & FolderName

投稿2021/08/14 15:25

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

circular2016

2021/08/16 12:28

ありがとうございます。 その通りでした!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問