|
▼kohaku さん:
失礼しました。見過ごしていました m(_ _)m
>仕様のバージョンアップが必要となり、悩んでおります。
>
>追加仕様:
>セルの内容: 12345* --> 実際のファイル名: 123451.pdf
>上記のようなPDFファイルは1個しか存在しないことは分かっています。
>■配列の中身を曖昧検索するには、どのように記述すればよいのでしょうか?
ワークシート関数のMATCHを使って、配列のワイルドカードを使った検索が
できますので、セルの値に * が含まれていたら、Match関数で実在する
123451.pdf
の位置を求め、フルパスを取得したらどうでしょうか?
Sub Try1() の以下の部分を修正してみましたから、
これを応用してそちらのコードを修正してみてください。
'シートのA列のファイル名が辞書にあればそのパス名を取得します
Dim fArray
fArray = dic.Keys()
Dim r As Range
Dim m, v As Variant
Set r = Range("A2", Cells(Rows.Count, 1).End(xlUp))
v = r.Value
For i = 1 To UBound(v)
s = v(i, 1) & ".pdf"
If InStr(s, "*") Then
m = Application.Match(s, fArray, 0)
If IsNumeric(m) Then
v(i, 1) = dic(fArray(m))
Else
v(i, 1) = ""
End If
ElseIf dic.Exists(s) Then
v(i, 1) = dic(s) 'そのファイルのあるパス名
Else
v(i, 1) = ""
End If
Next
'シートのB列に検索結果を貼り付ける
r.Offset(, 1).Value = v
|
|