• ベストアンサー

「D\」というフォルダに「Aaa.pdf」と言うファイルが在るかどうかの判定方法

「D\」というフォルダに「Aaa.pdf」と言うファイルが在るかどうかを調べるコードを書きたいのですが どうゆう風にしていいのかわかりません。 If ??? Then MsgBox "ファイルは存在します" Else MsgBox "ファイルは存在しません" End If と言うことは可能でしょうか? どうすればいいのかわかりません!! よろしくお願い致します。

noname#150498
noname#150498

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

こんな方法でも。 Sub test()  If Dir("D:\Aaa.pdf") <> "" Then     MsgBox "ファイルは存在します"  Else     MsgBox "ファイルは存在しません"  End If End Sub FSOはちょい苦手でして。

noname#150498
質問者

お礼

おお! できました!ご回答ありがとうございます。

その他の回答 (2)

回答No.3

#コピペ元のソースの関係で変数msgの宣言残ってますが,全く必要ないです,はい。

noname#150498
質問者

お礼

再度ご回答ありがとうございます。

回答No.1

Option Explicit Sub Main() Dim fso, msg Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists("D:\Aaa.pdf") Then MsgBox "ファイルは存在します" Else MsgBox "ファイルは存在しません" End If End Sub 'http://msdn.microsoft.com/en-us/library/x23stk5t(VS.85).aspx 'FileSystemObjectを利用しているので参照設定でMicrosoft Scripting Runtimeに 'チェックを入れる必要アリ。 'いくつか検索して調べたところ, 'サイトによってはDir関数の戻り値が空文字列であるかどうかで判定しているが, '残念ながらMSDNの資料からは該当の記述を見つけられなかった。 'http://msdn.microsoft.com/en-us/library/aa262726(VS.60).aspx

noname#150498
質問者

お礼

むむっ! 難しいですね。 試してみます。 ご回答ありがとうございます。

関連するQ&A

  • フォルダーとファイルの認識

    フォルダーとファイルを認識するため、 例として下記のVBAを実行します。 If (GetAttr("D:\winpobox-0.1\win2000") And vbDirectory) = vbDirectory Then MsgBox "フォルダ。" Else MsgBox "ファイル。" End If 結果は、「フォルダ」となりますが、 「win2000」が「win.2000」とwinと2000の間に「.」(ドット)が入ると「ファイルが見つかりません。」となります。 フォルダー名にドットが入っても識別できる方法はありますか。 よろしくお願いいたします。

  • VBAによるカレントフォルダのファイルを検索し開く

    カレントフォルダ内にファイル(コ―ド.xls)を見つけ開き、無ければMSG表示したい。 どのように、したらいいですか? 考えているのは、 Application.DefaultFilePath = ThisWorkbook.Path If ??? Then Workbooks.Open "コード.xls" else msgbox (ThisWorkbook.Path & "にコード.xlsを置いて下さい。") Exit sub end If です。 この???の部分を教えて頂きたいと思います。 よろしくお願いします。

  • 違うシートのデータを1つのPDFファイル保存VBA

    Sub データPDFファイル化() If MsgBox("ファイルをPDF化し過去データとして保存します。よろしいでしょうか?", vbYesNo) = vbNo Then End End If If Range("L2").Value <> "" Then Dim Fn As String Fn = Format(Range("L2"), "yyyy年m月d日") & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="D:\フォルダB\過去記録データ保存用フォルダ\データ\" & Fn Else MsgBox "セルL2にファイル名が入力されていません。", vbExclamation End If End Sub この様なコードがあります。エクセル2003では使用出来ないのでエクセル2007以降の使用です。 これはシート名「A」にコマンドボタンを設置し、そのコマンドボタンを押すとPDF化して保存するマクロです。 そこで質問ですがコマンドボタンを押すとシート名「A」と隣にあるシート名「B」をまとめてPDFファイルで保存する方法はどの様にすれば良いのでしょうか? PDF化した際は1ページ目がシート名「A」で2ページ目がシート名「B」を表示させ、名前はシート名「A」のL2(yyyy年m月d日)で保存します。

  • vbsのFolderExistsで部分一致をさせたい

    VBSで以下のコードを作成しましたが動作しません。 ********動作しない************************** if (objFileSys.FolderExists("200810*")= True) then  msgbox "yes" else  msgbox "no" end if ********動作する************************** if (objFileSys.FolderExists("200810")= True) then  msgbox "yes" else  msgbox "no" end if 部分一致でフォルダが存在するかをしたいのですが、 どうしたらいいのでしょうか。 よろしくお願いします。

  • (VBA)フォルダー内のファイルを自動で読み込む

    以下でターゲットフォルダーを指定して その中に存在する、テキストファイル(.txt)とMP3ファイル(.mp3)を 各1個ずつをそれぞれ読み込むようにしています。 'フォルダーを一覧から選択 (自由に選べること) MsgBox "ターゲットフォルダーを選択してください。", vbOKOnly + vbQuestion, "Making" With Application.FileDialog(msoFileDialogFolderPicker) With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then If Len(.SelectedItems(1)) = 3 Then ' c:\の場合とサブフォルダーの場合 TurgetFolder = .SelectedItems(1) Else TurgetFolder = .SelectedItems(1) & "\" End If End If End With 'TEXTファイル選択(ダイアログ) MsgBox "ターゲットになる" & vbCrLf & "テキストファイルを選択してください。", vbOKOnly + vbQuestion, "LIST" ChDir TurgetFolder TurgetTEXT = Application.GetOpenFilename("TEXTファイル(*.txt),*.txt") If VarType(TurgetTEXT) = vbBoolean Then MsgBox "選択がキャンセルされました" Else 'MsgBox TurgetFile & " が選択されました" End If 'Mp3サイズ読み込み() MsgBox "ターゲットMP3を選択してください。", vbOKOnly + vbQuestion, "MP3" TargetMP3 = Application.GetOpenFilename("MP3ファイル,*.mp3") 'MsgBox TargetMP3 Set fso = CreateObject("Scripting.FileSystemObject") Set SHell = CreateObject("Shell.Application") Set Folder = SHell.Namespace(fso.GetFile(TargetMP3).ParentFolder.Path) Target = fso.GetFile(TargetMP3).Name ----------------------------------------------- 今回、間違いが無くなるように フォルダー構造をターゲットフォルダーの中に テキスト及びMP3ファイルが一つずつしかない無い構造にしたので それぞれ別々に指定する必要なく ターゲットフォルダーを指定するとその中に存在する テキスト及びMP3ファイルを自動で指定(読み込む)ように改造したいのですが どのように改造すれば良いでしょうか ?

  • ファイルの有無を判定してからリンクをはりたい

    EXCELで、 Function isFileExist(Filename As String) As Boolean Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(Filename) Then isFileExist = True Else isFileExist = False End If End Function という自作の関数を標準モジュールにVBAでつくっておき、 セルに =IF(isFileExist("aaa.pdf"),HYPERLINK("aaa.pdf","ファイルを見る"),"ファイルはありません") と書いて、ファイルがある場合だけリンクをはるようにしようとしました。 ところが、ファイルがない場合でも、セルをクリックすると、 「指定されたファイルを開くことができません」と出てきてしまいます。 どうしてなのかわかる方がいましたら教えてください。

  • フォルダの中にファイルがあるかどうかを読み取りたい

    vbaです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Option Explicit Sub test() Dim 検索フォルダ As String Dim 検索ファイル名 As String 検索フォルダ = "C:\Users\Public" 検索ファイル名 = "新しいテキスト ドキュメント.txt" If 検索フォルダの中に検索ファイル名がある Then MsgBox 検索ファイル名 & "は存在します" End If End Sub ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ こんな感じで、フォルダの中にファイルがあるかどうかを読み取りたいのですが これ以上どういうコードを書けばいいかわかりません。 「フォルダの中にファイルがあるかどうか」がわかれば、出来そうな気がするのですが ご教授いただけますか?

  • 複数のフォルダから指定するファイルをコピー

    こんばんは。宜しくお願いします。 ◇行いたいこと 複数のフォルダ(例:"D:\AB" "D:\CD" "D:\EF")に格納されているファイルの中から指定した 日付を含んだファイルをコピーし、あるフォルダに張り付けたい。 (指定する日付を含んだファイルがすべてのフォルダに存在するとは限らない) ◇現時点でのソース ※エラー処理の未実装部分については無視していただいてけっこうです。 Dim fs Dim msg Dim f Const copyFrom = "D:\AB" Const copyTo = "D:\VBS\コピー先\" Do '日付入力のインプットボックスを出力 hizuke = InputBox("日付を入力してください。" & vbCr & vbCr & "例)2000-01-01") 'インプットボックスの入力値が空白である If hizuke = "" Then '日付入力を促すメッセージ出力 MsgBox "日付を入力してください。" Exit Do End If 'インプットボックスの入力値が10文字である If Len(hizuke) = 10 Then 'エラーが発生しても次の処理をすすめる On Error Resume Next '指定した日付の確認ダイアログを表示 msg = MsgBox(hizuke & "でよろしいですか?", vbYesNoCancel) '日付の確認ダイアログでYesを選択 If msg = vbYes Then 'ファイルオブジェクトを作成 Set fs = CreateObject("Scripting.FileSystemObject") 'コピー元フォルダに存在するファイルを読み込む For Each f In fs.GetFolder(copyFrom).Files '指定した日付を含むファイル名を検索 If InStr(f.Name, hizuke) > 0 Then '未実装 ファイルの上書き処理 fs.CopyFile 'コピー元 コピー先 Exit Do '未実装 Else Ifの処理 End If Next '未実装 Else Ifの処理 End If '未実装 Else Ifの処理 End If Loop 以上です。ご教授宜しくお願いします。

  • フォルダの中身がカラか調べる

    vbaです。 フォルダ(新しいフォルダ)を作り、その中にサブフォルダ(Test用フォルダ)を作って --------------------------------------------------------- Sub フォルダの中身がカラか調べる() If Dir("D:\新しいフォルダ\Test用フォルダ\*.*") = "" Then MsgBox "カラです" Else MsgBox "カラではありません" End If End Sub --------------------------------------------------------- を実行すると、新しいフォルダの中にフォルダがあるのに、 「カラです」が表示されてしまいます。 新しいフォルダのファイルサイズは0です。 If Dir("D:\新しいフォルダ\Test用フォルダ\*.*") = "" Then のコードは、フォルダの中のファイル数ではなく、 フォルダのサイズを取得してしまうのでしょうか?

  • フォルダの中身が空白なのかを調べたい。

    こんばんは。 エクセル2003のvbaにて Sub test() If Dir("D:新しいフォルダ") = "" Then MsgBox "フォルダには何も入っていません" Else MsgBox "フォルダに何か入っています" End If End Sub で試してみたのですが フォルダに何か入っていても "フォルダには何も入っていません" と表示されてしまいます。 どうすればうまくいくのでしょうか? よろしくお願いします。

専門家に質問してみよう