2017-05-24 6 views
-1

私はVBAコーディングには非常に慣れていて、ネットワークドライブから複数のイメージをダウンロード/コピーするマクロを持っている友人を助けようとしています。それらをデスクトップ上のフォルダに保存します。Excelマクロネットワークドライブから他のフォルダにイメージをコピーする

スプレッドシート内のデータがそのまま設定されます。 マクロは、列Bに記載されているパスから画像をコピーして、列Aからのデータを用いて画像の名前を変更して、デスクトップ上のフォルダに保存します

column A -   column B  -    column C 

3487458 - N:/path1/image1.jpg - http://www.website.com/data.pdf 

5412132 - N:/path2/image2.jpg - http://www.website.com/data2.pdf 

私は列のデータのために働くことにこれを持っていますCのhtmlリンクですが、ネットワークドライブへのパスであるB列のデータを処理する必要があります。

Const TargetFolder = "C:\Users\XXXX\Desktop\Output\" 
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _ 
Alias "URLDownloadToFileA" _ 
(ByVal pCaller As Long, _ 
ByVal szURL As String, _ 
ByVal szFileName As String, _ 
ByVal dwReserved As Long, _ 
ByVal lpfnCB As Long) As Long 


Sub Test() 
    For Each Hyperlink In ActiveSheet.Hyperlinks 
     LocalFileName = ActiveSheet.Cells(Hyperlink.Range.Row, 1).Value & 
".pdf" 
    Call HTTPDownloadFile(Hyperlink.Address, TargetFolder & LocalFileName) 
    Next Hyperlink 
End Sub 

おかげで、ロイ

EDIT:上に行くために

Sub copythem() 
Dim rw As Long, start_row As Long, end_row As Long 
Dim destination_folder As String 
Dim suffix As String 

suffix = ".jpg" 

With ActiveSheet 
    start_row = 1 
    end_row = .Cells(.Rows.Count, "B").End(xlUp).Row 

    destination_folder = "C:\Users\XXXX\Desktop\Output\" ' Set destination as user's desktop 

    For rw = start_row To end_row 
     If Dir(.Cells(rw, 2)) <> "(.Cells(rw, 2))" Then 
      FileCopy .Cells(rw, 2), destination_folder & .Cells(rw, 1) & suffix 
     Else 
      MsgBox "File: " & .Cells(rw, 2) & " is not found." 
     End If 
    Next 

End With 
End Sub 
+0

[このサイト](https://www.r ondebruin.nl/win/s3/win026.htm)。 VBAでファイルを移動/コピーするのは、ほんの1行か2行のコードです。 – JNevill

+0

スプレッドシートを使用しているので、VBSからVBAへの参照を変更しました(VBSは別の言語です)。 –

+0

それを明確にしていただきありがとうございます。 – Buddhak

答えて

0

ないたくさん働いCODEが、ファイルタイプ(suffix)と同様に、途中でいくつかの仮定を作りますあなたは「デスクトップ」と言っています - 最近のWindows版のデスクトップを意味します。

Sub copythem() 
    Dim rw As Long, start_row As Long, end_row As Long 
    Dim destination_folder As String 
    Dim suffix As String 

    suffix = ".jpg" 

    With ActiveSheet 
     start_row = 1 
     end_row = .Cells(.Rows.Count, "B").End(xlUp).Row 

     destination_folder = Environ("homedrive") & Environ("homepath") & "\desktop\output\" ' Set destination as output folder in user's desktop 

     For rw = start_row To end_row 
      If Dir(.Cells(rw, 2)) <> "" Then 
       FileCopy .Cells(rw, 2), destination_folder & .Cells(rw, 1) & suffix 
      Else 
       MsgBox "File: " & .Cells(rw, 2) & " is not found." 
      End If 
     Next 

    End With 
End Sub 
+0

destination_folderを別のものに向ける場合は、これを実行する前にフォルダが存在することを確認してください。 – CLR

+0

FileCopy .Cells(rw、2)、destination_folder&.Cells(rw、1)&suffixを指すデバッグでパスが見つかりません。 – Buddhak

+0

接尾辞が.jpgに変更されました destination_folder = "C:\ Users \ rykenes \ Desktop \ Output \ "'ユーザーのデスクトップとして宛先を設定する 編集した唯一のもの – Buddhak

関連する問題