🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

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

Q&A

解決済

2回答

8637閲覧

filesystemobjectでフォルダ内のファイル一覧を表示すると隠しファイルも拾ってしまう。

ice930

総合スコア99

VBA

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

0グッド

0クリップ

投稿2021/02/18 13:30

指定のフォルダ内のファイルのみを抽出し、フォルダを開きたいのですが、「~$ファイル名.xlsx」というファイルも拾ってしまい、フォルダが開けずエラーになってしまいます。
(タイトルに「隠しファイル」と書きましたが間違えていましたら申し訳ありません。)

以下がそのコードです。(関係有りそうな一部を抜粋しました。)

Set fso = CreateObject("Scripting.filesystemobject") Set EX = fso.Getfolder(path & "\" & cate & "\" & zyan) For Each E In EX.Files Writ = E.Name'''''ここで「~$ファイル名.xlsx」を拾ってしまいます。 Call 書き込み.入力(path & "\" & cate & "\" & zyan & "\", Writ, cate, zyan, path) Next E

~$の様な「開けないファイル」を拾わない様にするにはどのようにすればよろしいでしょうか。
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんな感じで読み飛ばす?

VBA

1If Not E.Attributes And Hidden Then

投稿2021/02/18 14:05

jinoji

総合スコア4592

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

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

ice930

2021/02/20 00:59

If Not E.Attributes And Hidden Then Call 書き込み.入力(path & "\" & cate & "\" & zyan & "\", Writ, cate, zyan, path) End If という形で実行したのですが、すべてのファイルを飛ばす様になってしまいました。 初めて見るコードでしたので調べましたが、「Eが隠しファイルで無い場合」となるので問題ない様に思うのですが・・・。 上記に記載しましたコードから、私が勘違いしている部分が在りましたらご指摘いただけると幸いです。 よろしくお願いします。
jinoji

2021/02/20 01:21

あれ? If Not (E.Attributes And Hidden) Then かな? ちょっと自信がないので、 Debug.Print E.Attributes とかして確かめてみてください。
ice930

2021/02/20 02:22

If Not (E.Attributes And Hidden) Thenだと全て通ってしまいました。 そもそも「~$」で始まるファイルは隠しファイルなのでしょうか。 何のファイルなのでしょうか・・・。ちなみにフォルダを開いても表示されません。 心辺り在りましたらよろしくお願いします。
jinoji

2021/02/20 02:27

~$ で始まるファイルは、Excelファイルを開いているときに裏側で一時的に出来る隠しファイルのはず。 あまり難しく考えず、 If Left(Writ, 2) <> "~$" Then とするのも一手だと思います。
ice930

2021/02/20 02:33

If Left(Writ, 2) <> "~$" Thenで行けました! 「隠しファイル」に拘っていました。 ありがとうございます!!
guest

0

Excelファイルだけをターゲットにする場合、
以下の判定で回避できます。

VBA

1If Left(E.Name, 2) <> "~$" Then 2 '処理を行う 3End If

<追記>
jinojiさんのコメントと被ってしまいました。

投稿2021/02/20 02:30

編集2021/02/20 02:32
TanakaHiroaki

総合スコア1063

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

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

ice930

2021/02/20 02:34

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問