1

Excel を使用して約 12000 エントリのフォルダー システムを作成する方法を探しています。MkDir 関数は十分に簡単に思えますが、残りを機能させる方法に行き詰まっています。どんな提案も役に立ちます

私が考えていること:

IndexID | Image
1       | sampleimage.com/images.jpg
2       | sampleimage.com/image.jpg
3       | sampleimage.com/moreimages.jpg
3       | sampleimage.com/evenmoreimages.jpg

次のファイル構造になります。

%dir%\Images\1\images.jpg
%dir%\Images\2\image.jpg
%dir%\Images\3\moreimages.jpg
%dir%\Images\3\evenmoreimages.jpg

またはこれ:

%dir%\Images\1\1.jpg
%dir%\Images\2\1.jpg
%dir%\Images\3\1.jpg
%dir%\Images\3\2.jpg

これらのファイルをまだダウンロードして適切なフォルダに保存していない場合は、VBA を使用してこれらのファイルをダウンロードしたいと思います。

4

1 に答える 1

2

これはあなたを助けるかもしれません:

http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/beb6fa0e-fbc8-49df-9f2e-30f85d941fad/

APIを使用してWebからファイルをダウンロードする方法を示しています。ディレクトリ構造を設定してすべてをまとめるには(このコードはまだ実行されません... API宣言を追加する必要があります):

Option Explicit

' api declarations go here
' ...


Const directory As String = "C:\Images"

Sub BacardiAndColaDoItDoIt()
    Dim sh As Excel.Worksheet
    Dim i As Long
    Dim iLastRow As Long
    Dim theFolderPath As String, theFilePath As String
    Dim fileName As String

    Set sh = ThisWorkbook.Worksheets("Sheet1")

    iLastRow = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row

    ' create first directory
    On Error Resume Next
    MkDir directory
    On Error GoTo 0

    For i = 2 To iLastRow
        theFolderPath = directory & "\" & sh.Cells(i, 1).Value
        fileName = Mid(sh.Cells(i, 2).Value, InStrRev(sh.Cells(i, 2).Value, "/") + 1, Len(sh.Cells(i, 2).Value))
        theFilePath = theFolderPath & "\" & fileName

        ' create subdirectory
        On Error Resume Next
        MkDir theFolderPath
        On Error GoTo 0

        'DownloadFile(sh.Cells(i,2).value, theFilePath)
    Next i
End Sub
于 2013-03-05T15:49:23.290 に答える