質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

10519閲覧

VBA 指定したフォルダの中にファイルがあるか否かのチェックはどうすべきですか。

King_of_Flies

総合スコア382

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/01/19 04:09

編集2018/01/19 04:21

現在、指定ファイルにExcelファイルを作成する。という簡単な動作の処理を作成しています。

この作成時のチェックとして、その指定先のフォルダに一つでもファイルがあれば、
「ファイル内に既にファイルが存在します。
同名ファイルが存在する場合、上書されますが、処理続行してもよろしいですか?」
というメッセージを出力する予定です。

このチェックはよく行われることだと思うので、
IEでいろいろ調べてみましたが、
特定のファイルが存在するか?というチェック方法はありますが、、
指定フォルダにファイルが一つでも存在するか?というチェック方法は見受けられませんでした。
下記は特定のファイルが存在するか?のチェックです。

VBA

1'FilePath = D:\Users\hogeUser\Desktop\ 2'FileName = hoge.xlsx 3 4Sub checkExsitsFile (FilePath,FileName) 5 If Dir(FilePath & FileName) <> "" Then 6   MsgBox FilePath & "には" & FileName & "は存在します。" 7 Else 8 MsgBox FilePath & "には" & FileName & "が存在しません。" 9 End If 10End Sub

ただ、実際にやりたいことは、FileNameを必要としない、FilePathの直下にファイルが一つでもあるか?というチェックです。

VBA

1'FilePath = D:\Users\hogeUser\Desktop\ 2 3Sub checkExsitsFile (FilePath) 4 If Dir(FilePath & "*.*") <> "" Then 5   MsgBox FilePath & "の配下にはファイルが存在します。" 6 Else 7 MsgBox FilePath & "の配下にはファイルが存在しません。" 8 End If 9End Sub

のようなチェックを入れたいのですが、この方法で正しいのか不明なため皆様の知恵を拝借したいです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

やってみてどうだったんですか?
手元の環境で試しましたが大丈夫そうですが、ダメなんでしょうか?
それとも方法としてこれが最適解かどうかを質問しているのでしょうか?

それから「ファイルの中にファイル」ではなく「フォルダの中にファイル」ですよね?

投稿2018/01/19 04:22

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

King_of_Flies

2018/01/19 04:23

最適解かどうかを質問しているのでしょうか? >そうですね。最適解かどうか尋ねています。 >わかりにくくてすいません。
ttyp03

2018/01/19 04:27

他のやり方を調べてはいませんが、問題なく動いているならそれでOKだと思いますよ。 関数一発で判定できているのだから、他のやり方があったとしても別の関数を使うだけでステップ数に違いはないでしょうし。
King_of_Flies

2018/01/19 04:30

回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問