
前回の質問と並行しています。
このFileSearch2007では、今のエクセル形式.xlsm に対応していません。
純粋に今の形式に対応可能な構文の記述が全く分かりません。
何かヒントなどをご教授いただければ幸いです。
よろしくお願いいたします。
Function FileSearch2007(dir_path, target_extention)
Set found_files = New Collection
Call FileSearch2007_Repeat(dir_path, found_files, target_extention)
Set FileSearch2007 = found_files
End Function
Private Sub FileSearch2007_Repeat(dir_path, found_files, target_extention)
Set fso = New FileSystemObject
Set target_folder = fso.GetFolder(dir_path)
For Each sub_folder In target_folder.SubFolders
Call FileSearch2007_Repeat(sub_folder.Path, found_files, target_extention)
Next sub_folder
For Each objFile In target_folder.Files
With objFile
If ((UCase(fso.GetExtensionName(.Path))) = target_extention) Then
found_files.Add Item:=.Path
End If
End With
Next objFile
Set fso = Nothing
End Sub
No.1ベストアンサー
- 回答日時:
こんばんは
>今のエクセル形式.xlsm に対応していません。
.xlsmのファイルに記述したときに動作しないという意味でしょうか?
ざっと見る限り、問題はなさそうですが・・
ごく簡単なテストしか行っていませんが、その範囲内ではちゃんと動作しますね。
(指定した拡張子のファイルパスのコレクションを返します)
(Win 10 Excel 2019 環境でテスト)
何をもって「対応していない」と判断なさっているのかわかりませんけれど、エラーが出るのでしょうか?
あるいは、Count=0のコレクションが返されるとか?
エラーが出るとするなら、FSOの参照設定をしていないくらいしか思いつきませんけれど・・
あるいは、特殊なディレクトリ(=例えば、参照権限がないディレクトリ)に対して実行しようとしているとか・・
fujillin様
ご教授有難うございました。
複数の.xlsm ファイルVBAで開いて、必要なデータを読み込んでいます。
そのVBAが落ちてしまうのですが、原因がFileSearch2007だと勘違いしていたようです。
fujillin様の仰るように、この構文は特に問題なく動くことを再確認いたしmした。
ご助言有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA(実行時エラー438...
-
VBAで、貼り付け禁止命令を実現...
-
マクロでのカーソル移動
-
Excel VBA セルを指定個数ラン...
-
データが入力されている隣のセ...
-
VBA セルに合わせて移動するが...
-
【VBA】参照値を1ずつ増やして...
-
VBAのListBoxで複数選択して...
-
マクロを使って画像を貼り付け
-
VBAでの入力
-
エクセル2007 VBA DTPicker
-
JTableでのCELLの複数選択
-
複数行選択のテキストボックス
-
【VBA】InputBoxで文字をセルに...
-
アドバイスを下さい。
-
エクセルテキストボックスの文...
-
エクセルVBAで少数点を切り捨て...
-
StringGridでの文字入力制限
-
Jtableの特定のセルの背景色や...
-
EXCELマクロ 保護されているシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データが入力されている隣のセ...
-
EXCELマクロ 保護されているシ...
-
エクセルVBA(実行時エラー438...
-
Windowsで動くVBAがmacOSで動か...
-
エクセルテキストボックスの文...
-
VBAで、貼り付け禁止命令を実現...
-
VBA セルに合わせて移動するが...
-
メッセージを1度だけ表示したい。
-
エクセルのVBAでダブルクリック...
-
ダブルクリックすると現在の時...
-
ハイパーリンクされているファ...
-
VBAで選択したセルのみ処理を実...
-
VBAで丸をつけたいです。
-
【VBA】参照値を1ずつ増やして...
-
Swing 編集不可でも選択可能なJ...
-
Jtableの特定のセルの背景色や...
-
VBAのListBoxで複数選択して...
-
VBAについて教えてください。 E...
-
エクセルVBA セル選択後にカレ...
-
セル色を5秒間隔で変える
おすすめ情報