2017-01-03 5 views
0

最近Microsoft Wordで日常業務の一部を自動化するためにvbaを試し始めました。私は、ユーザーが目的のフォルダと選択された目的地のフォルダにコピーされるファイル(.doc)を選択できるようにするコードを作成中です。Microsoftワードファイルをvbaで別のフォルダに貼り付ける

次のコードはエラーなしで実行されますが、ファイルはコピー先フォルダに貼り付けられません。

この問題を解決する助けに感謝します。

よろしく、

デレク

Sub copydocs() 

Dim items As Long 
Dim file_path As Variant 
Dim folder_path As Variant 

    'Ask user for input' 

    items = InputBox("Give me some input") 


    'Select Destination Folder 
    With Application.FileDialog(msoFileDialogFolderPicker) 
     folder_path = .SelectedItems(1) 
     .Show 
    End With 


    ' Open the file dialog 
    For i = 1 To items 
     With Application.FileDialog(msoFileDialogFilePicker) 
      .AllowMultiSelect = True 
      .Show 
      file_path = .SelectedItems(1) 
     End With 

     ' Copy paste  
     Dim fs As Object 
     Set fs = CreateObject("Scripting.FileSystemObject") 
     fs.CopyFile file_path, folder_path 
     Set fs = Nothing 

    Next i  

End Sub 

答えて

0

問題がいくつかあります。

変数iはどこにも宣言されていません。

ダイアログが返される前にフォルダパスを保存しようとしています。

Sub copydocs() 
    Dim i As Integer    ' CHANGE: New declare. 
    Dim fs As Object    ' CHANGE: Moved to top. 
    Dim items As Long 
    Dim file_path As Variant 
    Dim folder_path As Variant 

    'Ask user for input. 
    items = InputBox("Give me some input") 

    'Select Destination Folder 
    With Application.FileDialog(msoFileDialogFolderPicker) 
     ' CHANGE: Switched order of next two lines. 
     .Show 
     folder_path = .SelectedItems(1) 
    End With 

    ' Open the file dialog 
    For i = 1 To items 
     With Application.FileDialog(msoFileDialogFilePicker) 
      .AllowMultiSelect = True 
      .Show 
      file_path = .SelectedItems(1) 
     End With 

     ' Copy paste 
     Set fs = CreateObject("Scripting.FileSystemObject") 
     fs.CopyFile file_path, folder_path 
     Set fs = Nothing 
    Next i 
End Sub 
関連する問題