Excel VBA質問箱 IV

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

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


30543 / 76732 ←次へ | 前へ→

【51454】Re:dir関数でワイルドカードを使用した検索結果
発言  ichinose  - 07/9/19(水) 7:44 -

引用なし
パスワード
   ▼初級者 さん:
おはようございます。

>dir関数でワイルドカードを使用してファイルを検索しているのですが、
>思った結果が得られません。アドバイスを頂けないでしょうか?

めったにDir関数は使わないのですが(というかDir関数を使うような仕様のプログラムがあまりない、極たまに使う場合は FSOですねえ)、
いくつか問題がありそうですねえ!!


>
>
>下記のソース(抜粋して掲示板用に修正しています)では
>ワイルドカードで6文字指定して、あとは拡張子、としている
>つもりんなんですけど、
> "FILENAME"_2.gif  ※FILENAMEは任意の文字列
>とかが検索されます。
>
>記述が悪いのか、dir関数や、ワイルドカードの仕様が
>わかっていないのか、誰か教えてもらえませんか?
>
>
>'FILE_PATH:ファイルのパス
>'FILE_NAME:ファイルの名前
>Dim strHoge as string
>Dim strName as string
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")

>'"yymmdd.*"を検索
>strHoge = FILE_PATH & "\" & FILE_NAME & "_??????.*"
>strName = Dir(strHoge, vbNormal + vbReadOnly + vbHidden + vbSystem)
>Do Until strName = ""
>  MsgBox = strName
   Debug.Print fso.getfile(FILE_PATH & "\" & strname).shortname
'本当は↑このショートネームで比較しているのでは??
'きちんと検証してませんが、調べてみてください
>  '次のファイルを検索
>  strName = Dir
>Loop

Dir関数では、dir("d:\xxxx\yyy\*.*")
のように全てのファイル名を取得し、
これをLike演算子で比較してみては??
いかがですか?
3 hits

【51453】dir関数でワイルドカードを使用した検索結果 初級者 07/9/19(水) 3:14 質問
【51454】Re:dir関数でワイルドカードを使用した検索... ichinose 07/9/19(水) 7:44 発言
【51463】Re:dir関数でワイルドカードを使用した検索... 初級者 07/9/20(木) 1:30 お礼
【51473】Re:dir関数でワイルドカードを使用した検索... yhar 07/9/20(木) 12:41 発言

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