🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

7679閲覧

Dir()関数でファイルを捜査する場合で複数条件をしたいする場合

pegy

総合スコア245

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/03/03 04:19

編集2021/03/03 04:36

Dir()関数でファイルを捜査する場合で複数条件をしたいと考えております。
具体的には文頭が①、②のいずれからも始らないファイルがあれば、その結果を得たいと考えております。

vba

1path = "\a" 2result1 = Dir(pass & "\" & "①*") 3result2 = Dir(pass & "\" & "②*") 4 5If result1 <> "" AND result2 <> "" Then 6 ' 処理 7Endif 8``` 9以下のように、それぞれ判定する必要があるのでしょうか?それともRegExオブジェクトを使わずに簡単な複数条件を指定する方法があるのでしょうか? 10 11ご助言をお願いいたします。 12 13【追記】 14If文について 15`If result1 = "" AND result2 = Then` 16としていまいしたが、正しくは論理的には以下のとおりのため修正しました。 17`If result1 <> "" AND result2 <> Then`

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ループでまわしてLike演算子で判断することになります。

vba

1 Dim result As String, path As String 2 path = "C:\test" 3 4 result = Dir(path & "\" & "*") 5 Do Until result = "" 6 If Not result Like "[①②]*" Then 7 Debug.Print result 8 End If 9 result = Dir() 10 Loop

投稿2021/03/03 04:41

編集2021/03/03 04:52
hatena19

総合スコア34073

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2021/03/03 05:13

ありがとうございます。基本的には想定したことを実装することができたのですが、実際に複数あるフォルダを当該処理でループした際に、無限ループで固まってしまいました。Do Until result = ""の時点でそのような場合にはループにも入らない認識なのですが、他に原因が考えらえれますでしょうか?
pegy

2021/03/03 05:18

一応Do Untilの直前に If result <> "" Thenで回避できているので、やはりフォルダが空の場合にはループに入ってしまって、何もないところから、特定の条件でないものを探しているような矛盾が生じしている印象はあります。
hatena19

2021/03/03 05:29

当方のサンプルでは問題なく動作してます。実際に記述したコードを提示してもらえますか。 あと、Dir関数は制限がありますが、その点は大丈夫でしょうか。 Dir関数の制限について|VBA技術解説 https://excel-ubara.com/excelvba4/EXCEL262.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問