• 締切済み

VBAで任意の文字列を含むファイルが存在する間はループを掛けるプログラムの作成。

VBA で 任意のディレクトリに セル”A1”の文字列が含まれる ファイルが存在する間はループをかけるプログラムを作成したいのですが上手くいきません。 詳しい方、助けてください。。。 なお、ループはwhileを使っています。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>が存在する間はループを掛ける といっているが、普通わかりにくいのは(勉強課題は)(1)でしょう。 下記のように筋道を立てて、考えること。 そしてどの部分がわからないのか、質問に明記のこと。 でないと課題を丸投げしていることになる。 (1)指定した1つの中のファイルを捕まえる事。 (2)そして書いてないが エクセルファイルでしょう、その中からエクセルファイルを選別し (3)ファイルの名前を捉えて、 (4)A1があるかどうかの判別をし、 (5)A1があれば何かの処理をし (6)ファイルが数えつくされれば、終わる ーー (1)は、Dir関数やVBScriptを使ウことになるでしょう。後者は 「フォルダ内のファイルを取得したい」という課題で、WEBや解説書に あります。 WEBでは「フォルダ ファイル名 取得」で照会する。 Dirの例 http://www.accessclub.jp/samplefile/samplefile_209.htm http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html Filesearch http://www.nurs.or.jp/~ppoy/access/excel/xlM025.html VBScript http://itpro.nikkeibp.co.jp/article/COLUMN/20060120/227645/ あと .NETのも載ってます。

ok_answer
質問者

お礼

回答ありがとうございます。 リンク先を参考にして勉強いたします。

noname#77845
noname#77845
回答No.1

どういうコードを使い、どううまくいかないのかを補足してください。

ok_answer
質問者

補足

初心者ですので、コードの使用の仕方など 間違っておりましたらご指摘ください。 以下のように記述しています。 "B1" には ファイルパスを入力しています。 "A1" には " *150*.* " と入力しています。 これで、150が含まれる文字列のファイルの存在を 確認し、ループになっているのか。。。。 ============================================ Private Sub CommandButton2_Click() Dim myName As String myName = (Range("B1").value & Range("A1").value) Do While mydir > 0 mydir = Len(Dir(myName, vbDirectory)) If mydir > 0 Then If (GetAttr(myFileName) And vbDirectory) = vbDirectory Then Else Else   exit do Loop End Sub

関連するQ&A

専門家に質問してみよう