Excel VBA 質問スレッド №1566 (解決済)

保存先のフォルダパスの指定について

投稿者 : ぴか     投稿日時 : 2023/09/14(Thu) 16:08:57     OS : 未指定     EXCEL : 未指定
先ほど投稿した内容に関して、追加の質問です。

五層目に格納されたフォルダの内、Sheets(1)のRange("F" & i)のセル内に書かれた文字列の左から10個の文字を含むフォルダがあれば、コピペする、とういう内容のロボットを作りたいです。
また、格納場所については、Sheets(1)のRange("D" & i)のセル内に書かれた文字列の左から3文字が「大阪府」であれば、指定した処理をしたうえで、指定したフォルダに格納し、「大阪市」、「その他」であれば、それぞれ別の処理を行いたいです。

★の箇所で下記エラーが起きています。

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

何かお気づきの点ありましたらご教授くださいませ。


Sub 大阪府()

    Application.ScreenUpdating = False
    Dim fso As New FileSystemObject
    Set fso = New FileSystemObject
    Dim fld1 As Folder, fld2 As Folder, fld3 As Folder, fld4 As Folder, fld5 As Folder
    
        Dim i As Long
        For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
               
        With ActiveWorkbook
        
            Set fld = fso.GetFolder("Z:¥〇〇¥〇〇〇")

            
            For Each fld2 In fld.SubFolders
                For Each fld3 In fld2.SubFolders
                    For Each fld4 In fld3.SubFolders
                        For Each fld5 In fld4.SubFolders
                            If fld5.Name Like "*" & Left(.Sheets(1).Range("F" & i), 10) & "*" Then
                            
                                Select Case Left(.Sheets(1).Range("D" & i), 3)
                                
                                    Case "大阪府"
                                        .Sheets(1).Range("D" & i) = Replace(.Sheets(1).Range("D" & i), "大阪府", "")
                                        .Sheets(1).Range("D" & i) = Replace(.Sheets(1).Range("D" & i), "大阪", "")
                                        ★fld5.Copy Destination:="C:\Users\〇〇\Desktop\お大阪2\2.〇〇\大阪府\*" & Left(.Sheets(1).Range("D" & i), 3) & "*"

                                    Case "大阪市"
                                        fld5.Copy Destination:="C:\Users\〇〇\Desktop\お大阪2\3.市町村\オ大阪市\*" & Mid(.Sheets(1).Range("D" & i), 4, 3) & "*"

                                    Case Else
                                        fld5.Copy Destination:="C:\Users\〇〇\Desktop\お大阪2\3.市町村\*" & Left(.Sheets(1).Range("D" & i), 2) & "*"


                                End Select

                            End If
                        Next
                    Next
                Next
            Next
        End With
        Next

End Sub

スポンサーリンク
[返信 1] Re : 保存先のフォルダパスの指定について
投稿者 : さんこう     投稿日時 : 2023/09/14(Thu) 16:25:51
>fld5.Copy Destination:="C:¥Users¥〇〇¥Desktop¥お大阪2¥2.〇〇¥大阪府¥*" & Left(.Sheets(1).Range("D" & i), 3) & "*"

>「プロシージャの呼び出し、または引数が不正です。」


FolderオブジェクトのCopyメソッドのヘルプに、下記の説明が書かれています。

destination : 「ファイルまたはフォルダーのコピー先。 ワイルドカード文字は使用できません。」

[返信 2] Re : 保存先のフォルダパスの指定について
投稿者 : ぴか     投稿日時 : 2023/09/14(Thu) 17:27:37
さんこうさん

情報ありがとうございます。
次回からヘルプを確認するようにいたします。
大変助かりました。

■[返信 1] さんこうさん(2023-09-14 16:25:51)の記事
> >fld5.Copy Destination:="C:¥Users¥〇〇¥Desktop¥お大阪2¥2.〇〇¥大阪府¥*" & Left(.Sheets(1).Range("D" & i), 3) & "*"

> >「プロシージャの呼び出し、または引数が不正です。」


> FolderオブジェクトのCopyメソッドのヘルプに、下記の説明が書かれています。

> destination : 「ファイルまたはフォルダーのコピー先。 ワイルドカード文字は使用できません。」


[返信 3] Re : 保存先のフォルダパスの指定について
投稿者 : higeru     投稿日時 : 2023/09/15(Fri) 09:28:48
 解決済みなので目に留まらないかもですが、

■[質問] ぴかさん(2023-09-14 16:08:57)の記事
> Dim fso As New FileSystemObject
> Set fso = New FileSystemObject

一行目の "New" は不要です。もしくは("New" を付けたなら)二行目は不要です。些細なことですが前回の質問の時に書き忘れたので。

[返信 4] Re : 保存先のフォルダパスの指定について
投稿者 : ぴか     投稿日時 : 2023/09/15(Fri) 12:01:00
わざわざ教えてくださり助かります。
ありがとうございます。
削除しました。

■[返信 3] higeruさん(2023-09-15 09:28:48)の記事
>  解決済みなので目に留まらないかもですが、

> ■[質問] ぴかさん(2023-09-14 16:08:57)の記事
> > Dim fso As New FileSystemObject
> > Set fso = New FileSystemObject

> 一行目の "New" は不要です。もしくは("New" を付けたなら)二行目は不要です。些細なことですが前回の質問の時に書き忘れたので。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2023-10-01 23:40:09 )
タイトルとURLをコピーしました