Access VBA質問箱 IV

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

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


619 / 2272 ツリー ←次へ | 前へ→

【10883】ファイル検索について ひで 08/12/19(金) 16:30 質問[未読]
【10884】Re:ファイル検索について Gin_II 08/12/19(金) 17:08 回答[未読]
【10885】Re:ファイル検索について ひで 08/12/19(金) 18:52 発言[未読]
【10886】Re:ファイル検索について neptune 08/12/19(金) 23:05 発言[未読]
【10887】Re:ファイル検索について ひで 08/12/23(火) 12:53 お礼[未読]
【10888】Re:ファイル検索について neptune 08/12/23(火) 16:09 回答[未読]
【10889】Re:ファイル検索について ひで 08/12/23(火) 18:06 発言[未読]
【10890】Re:ファイル検索について neptune 08/12/23(火) 22:49 回答[未読]
【10914】Re:ファイル検索について ひで 09/1/7(水) 12:35 お礼[未読]

【10883】ファイル検索について
質問  ひで  - 08/12/19(金) 16:30 -

引用なし
パスワード
   お世話になります。

ファイルの検索について教えて頂きたいのですが、
Dドライブの中にAAAフォルダーがありその中に1234.tifの様に
tifファイルが多数あるのですが、検索フォームで「1234」と入力して
検索し、該当のファイルをリストボックスに表示させたいと思うのですが
やり方についてご教示頂ければと思います。

よろしくお願い致します。

【10884】Re:ファイル検索について
回答  Gin_II  - 08/12/19(金) 17:08 -

引用なし
パスワード
   > Dドライブの中にAAAフォルダーがありその中に1234.tifの様に
> tifファイルが多数あるのですが、検索フォームで「1234」と入力して
> 検索し、該当のファイルをリストボックスに表示させたいと思うのですが
> やり方についてご教示頂ければと思います。

どういったファイルが該当ファイルなんですか?

完全一致?
前方一致?
部分一致?

とりあえずは、ヘルプで、Dir 関数とリストボックスの値集合ソースプロパティ
あたりを確認してください。

【10885】Re:ファイル検索について
発言  ひで  - 08/12/19(金) 18:52 -

引用なし
パスワード
   ▼Gin_II さん:
>どういったファイルが該当ファイルなんですか?
>
>完全一致?
>前方一致?
>部分一致?

すみません説明不足ですね。
1234-1,1234-2などがありますので、「1234」を含む部分一致という形になります。
ヘルプ等で見るのですが、なかなか良い物がなく、ご教示頂ければ幸いです。

【10886】Re:ファイル検索について
発言  neptune  - 08/12/19(金) 23:05 -

引用なし
パスワード
   ▼ひで さん:
横から失礼
>ヘルプ等で見るのですが、なかなか良い物がなく、ご教示頂ければ幸いです。
既に
>ヘルプで、Dir 関数とリストボックスの値集合ソースプロパティ
>あたりを確認してください。
というアドバイスを頂いてますが、本当に確認しましたか?
現在の質問内容のみではそれで充分と感じるはずです。

確認後なお不明な点を質問すればどうですか?

【10887】Re:ファイル検索について
お礼  ひで  - 08/12/23(火) 12:53 -

引用なし
パスワード
   ▼neptune さん:
ご指摘ありがとう御座います。
当方ドが付くほどの素人でして・・・

ヘルプ等から、

Set fs = Application.FileSearch
With fs
  .LookIn = "C:\My Documents"
  .FileName = "cmd*.*"
  If .Execute > 0 Then
    MsgBox .FoundFiles.Count &" 個のファイルが見つかりました。"
    For i = 1 To .FoundFiles.Count
      MsgBox .FoundFiles(i)
    Next i
  Else
    MsgBox "ファイルは見つかりませんでした。"
  End If
End With

にて実行しメッセージボックスが出る所までは出来たのですが、
その検索結果をリストボックスに表示する方法が分からないのです。

リスト表示でこの様なコードもあったのですが、
組み合わせて使用できますでしょうか。

  strRowSouce = ""
  For intLoop = 0 To intCount - 1
     strRowSouce = strRowSouce & strList(intLoop) & ";"
  Next intLoop
  LBX_List.RowSource = strRowSouce
  '選択解除
  For intLoop = 0 To intCount - 1
    LBX_List.Selected(intLoop) = False
  Next intLoop

お手数ですがよろしくお願い致します。

【10888】Re:ファイル検索について
回答  neptune  - 08/12/23(火) 16:09 -

引用なし
パスワード
   ▼ひで さん:
こんにちは

すぐにテストできるようなソースをUPしてくれると手間が省けます。
せっかくDir関数を紹介してくれているのに何の役にも立ってないですね。

速度的にはDir関数がかなり速いはずです。
Excelで作成しましたが、同じだったと思います。研究してみて下さい。
以下は一例です。

Private Sub CommandButton1_Click()
Dim n As String
Dim fs As Object
Dim i As Long

  Set fs = Application.FileSearch
  With fs
'  '  .LookIn = "C:\My Documents"
    .LookIn = "E:\Data\Office\Excel"
    .Filename = "*.xls"
    If .Execute > 0 Then
      Debug.Print .FoundFiles.Count & " 個のファイルが見つかりました。"
      For i = 1 To .FoundFiles.Count
        Me.ListBox1.AddItem .FoundFiles(i)
      Next i
    Else
      MsgBox "ファイルは見つかりませんでした。"
    End If
  End With

End Sub

↑と比べて下さい。
Private Sub CommandButton2_Click()
Dim sFind As String
Dim sPath As String

  sPath = "E:\Data\Office\Excel\*.xls"
  sFind = Dir(sPath)
  
  Do Until sFind = ""
    Me.ListBox1.AddItem sFind
    sFind = Dir()
  Loop
End Sub

【10889】Re:ファイル検索について
発言  ひで  - 08/12/23(火) 18:06 -

引用なし
パスワード
   ▼neptune さん:

ご教示頂いたコードをエクセルでやってみた所うまくいきました。

ACCESSで試してみましたが、

コンパイルエラー
メソッドまたはデータメンバーが見つかりません。とエラーが出ます。

Me.ListBox1.AddItem .FoundFiles(i)の.AddItem のところでエラーになります。

申し訳御座いませんが、対処方法をご教示いただけると助かります。

よろしくお願い致します。

【10890】Re:ファイル検索について
回答  neptune  - 08/12/23(火) 22:49 -

引用なし
パスワード
   ▼ひで さん:

自信は無いのですが、AddItemメソッドはどうもOfficeXP以降から
実装されたようです。
当方は2000ですが、やはり同じエラーが出ました。昔、使ったような気が
したんですが、勘違いだったようです。

Helpでリストボックスの値集合ソースプロパティを調べて下さい。
そこにデータの表示のさせ方が書かれています。
後は基本的な文字列操作の問題です。

全部は書くポリシーではありませんので、そこは悪しからず。

【10914】Re:ファイル検索について
お礼  ひで  - 09/1/7(水) 12:35 -

引用なし
パスワード
   ▼neptune さん:

ありがとうございました。

また自分でも勉強してみたいと思います。

619 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078197
(SS)C-BOARD v3.8 is Free