dポイントプレゼントキャンペーン実施中!

OS: WindowsXP
Office: 2003


ExcelVBAについて教えてください。
VBAで特定のフォルダー内でファイルが存在するかの確認をしたいのです。


例えば、以下のようなフォルダーに営業日がファイル名に付いた複数のファイルがあります。

 C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120201.xls
 C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120202.xls
 C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120203.xls
 C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120206.xls
 C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120207.xls
 C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120208.xls


処理は20120201(2012年2月1日)から順番に行うのですが、その際、
報告書20120203.xlsはファイルが存在しているので変数1を返す。
報告書20120204.xlsは休日のためファイルが存在しないので変数0を返す。

次の処理で変数1の場合は処理をし、変数0の場合は処理を飛ばすと言った内容のマクロを考えています。

要はフォルダー内にファイルが存在するかしないかの部分のマクロ記述を知りたいのです。

どなたか、よろしくお願いします。

A 回答 (2件)

質問者の意図の通りの回答ではありませんが、


特定のファイルが存在するか否かを判定する構文を書きます。

AA:検索対象ファイルのフルネーム(C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120201.xls等々)
BB:特定のファイルが存在するか否かを判定する文字列値(BB=""ならば存在しない。BB<>""ならば存在する。)

BB=Dir(AA)
IF BB="" Then
XXXXXXXX
Else
YYYYYYYY
End IF

付け足し
特定のフォルダ(ZZZZZZ)に存在するファイル名(CC)を取得する構文を書きます。
Dim AAA,BBB,CCC,DDD
Set AAA = CreateObject("Scripting.FileSystemObject")
Set BBB = AAA.GetFolder("ZZZZZZ")
Set CCC = BBB.Files
For Each DDD In CCC
CC = DDD.Name
Next
ファイル名(CC)の取得後の論理についてはいろいろお考え下さい。
    • good
    • 0
この回答へのお礼

おかげ様で無事にマクロが出来ました。
どうもありがとうございました。

お礼日時:2012/02/20 14:51

fsoのFileExistを使うのが一つの方法です。


http://officetanaka.net/excel/vba/filesystemobje …
    • good
    • 0
この回答へのお礼

教えていただいたURLを参考にしたところ、無事出来ました。
どうもありがとうございました。

お礼日時:2012/02/20 14:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!