Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7233 / 76732 ←次へ | 前へ→

【75088】Re:ファイル検索とリンク設定
発言  kanabun  - 13/12/10(火) 13:12 -

引用なし
パスワード
   ▼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

278 hits

【75011】ファイル検索とリンク設定 Kohaku 13/11/14(木) 13:28 質問
【75013】Re:ファイル検索とリンク設定 kanabun 13/11/14(木) 17:48 発言
【75024】Re:ファイル検索とリンク設定 Kohaku 13/11/15(金) 18:20 お礼
【75025】Re:ファイル検索とリンク設定 kanabun 13/11/15(金) 18:54 発言
【75043】Re:ファイル検索とリンク設定 Kohaku 13/11/18(月) 14:11 お礼
【75082】Re:ファイル検索とリンク設定 kohaku 13/12/9(月) 19:11 質問
【75088】Re:ファイル検索とリンク設定 kanabun 13/12/10(火) 13:12 発言
【75091】Re:ファイル検索とリンク設定 kohaku 13/12/10(火) 16:32 お礼

7233 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free