こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA フォルダ内にファイルが存在するか確認したい

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の場合は処理を飛ばすと言った内容のマクロを考えています。

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

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

投稿日時 - 2012-02-15 17:14:12

QNo.7306847

困ってます

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

質問者の意図の通りの回答ではありませんが、
特定のファイルが存在するか否かを判定する構文を書きます。

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)の取得後の論理についてはいろいろお考え下さい。

投稿日時 - 2012-02-16 09:14:36

お礼

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

投稿日時 - 2012-02-20 14:51:23

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

fsoのFileExistを使うのが一つの方法です。
http://officetanaka.net/excel/vba/filesystemobject/filesystemobject10.htm

投稿日時 - 2012-02-15 17:24:31

お礼

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

投稿日時 - 2012-02-20 14:50:48

あなたにオススメの質問