0

いくつかの製品 ID コードを含む Excel シートがあります

100-10R 23P901……

商品画像を保存するフォルダがあります。画像の最初に製品コードがありますが、最後は異なる場合があります。

製品コードに基づいて、外部フォルダーにある画像を Vloopup できるかどうかは誰にもわかりませんか?

4

1 に答える 1

0

FileSystemObject を調べる必要があります。これにより、FileSystem に関係するものを調べることができます。

簡単な例を作成しましたが、完全には確信が持てなかったので、あなたがやろうとしていることのようにはならないかもしれません. かなり理解しやすいと思います。

次のコードをモジュール内に配置すると、ワークシートの「checkList」関数にアクセスできます。

checkList 関数は、指定されたフォルダーからキャッシュされたファイル名のリストをループし、パラメーター "Name" がリストに格納されているアイテムのいずれかと一致するかどうかを確認します。

キャッシュされたファイルのリスト (FileList コレクション) は、loadList サブルーチンによって最初に checkList が呼び出されたときに、一度読み込まれます。

loadList サブルーチンは、指定されたフォルダーを読み取り、すべてのファイル名をコレクションに追加します。

' Global Variable, used to cache the filenames
Public FileList As Collection

' this function returns "" if no match was found, and returns the file name if found.
Public Function checkList(ByVal Name As String) As String
Dim Result As String
Dim Item As Variant

    Result = ""

    If FileList Is Nothing Then
        loadList
    End If

    For Each Item In FileList
        ' Performs a simple match on the filename, probably needs to be adjusted!
        If Item Like Name & "*" Then
            Result = Item
        End If
    Next Item

    checkList = Result

End Function
' populates the FileList collection
Public Sub loadList()
Dim FSO As Object
Dim Folder As Object
Dim File As Object

If FileList Is Nothing Then
    ' First Run, needs to be created
    Set FileList = New Collection
Else
    ' Should not happen unless you call it manually.
    Set FileList = Nothing ' Clear up the old list
    Set FileList = New Collection ' Create a new empty one
End If

Set FSO = CreateObject("Scripting.FileSystemObject")
' Change "C:\" to the location of the folder you want to search
Set Folder = FSO.GetFolder("C:\")

For Each File In Folder.Files
    ' Add the name to the FileList
    FileList.Add File.Name
Next

End Sub
于 2012-12-07T23:31:35.853 に答える