• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExelVBA Dirでのファイル名検索について)

ExelVBA Dirでのファイル名検索について

このQ&Aのポイント
  • Excel VBAを使って、指定したフォルダからjpgとpng形式の画像のファイル名を取得する方法について質問です。
  • 現在のコードでは、ワイルドカードを使用して2回Do Loopを繰り返す必要がありますが、もっとシンプルにコードを書きたいという要望があります。
  • Excel 2003を使用しているため、いくつかの試みを行ったが、型の一致エラーが発生してしまいました。よりスッキリした方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>わざわざDo White Loopを2回繰り返しさないといけいないのか… はい,その通りです。 作成例: sub macro1()  dim myPath as string  dim myFile as string  dim a as variant  dim i as long, n as long  mypath = "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\"  a = array("*.jpg","*.png")  for i = 0 to ubound(a)    myfile = dir(mypath & a(i))   do until myfile = ""    n = n + 1    cells(n, "A") = myfile    myfile = dir()   loop  next i end sub

souko3
質問者

お礼

なるほど!こういう時にArrayを使うといいんですね! 今まで配列の類はどんな時に使うのか全然イメージがわかなかったので、 そういう意味でも大変参考になりました。 2回Loopはするものの、この書き方ならコードがシンプルで分かり易くなりますね。 ぱっと見てすぐに理解できない部分が多少ありますが、そこは自力で調べてなんとかモノにしたいと思います。 勉強になりました、有難うございます!

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

安直です。 pngFileName = Dir(path & "*.png") → pngFileName = Dir(path & "*.??g") 

souko3
質問者

お礼

おぉ、なるほど!これは盲点でした!これならば曖昧であるものの、確かにjpgとpngを一度に指定できますね。有難う御座います!