- ベストアンサー
EXcelマクロで同じフォルダ内のファイル全て開く方法
- EXcelマクロを使用して同じフォルダ内のすべてのファイルを開く方法について教えてください。
- カレントフォルダが異なるドライブに設定されている場合に、EXcelマクロで同じフォルダ内のファイルを開く際に問題が発生します。この問題の解決方法はありますか?
- 特定のフォルダ内のExcelファイルを自動的に開くマクロを作成したいです。どのようにすれば実現できますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。前回回答したham_kamoです。 いろいろ試しているうちに他の方々が回答してくれましたが、一応私の回答は以下の通りです。 まず、 ChDir (ThisWorkbook.Path) FileName = Dir("*.xls") を FileName = Dir(ThisWorkbook.Path & "\*.xls") に変更し、さらに Workbooks.Open (FileName) の部分(前回エラーが出た場所です)を、 Workbooks.Open (ThisWorkbook.Path & "\" & FileName) に変更してみてください。
その他の回答 (3)
- tetra
- ベストアンサー率33% (1/3)
'ChDir (ThisWorkbook.Path) をコメントにし、以下の一行を実行してください。 Application.DefaultFilePath = ThisWorkbook.Path
- Yeti21
- ベストアンサー率47% (396/830)
別のところでも書きましたが、UNC名や別ドライブに対するchdirは機能しません。 APIを使用して切り替える方法も有りますが、 単にファイルを開きたいだけならカレントディレクトリを移動する必要は無いと思います。 ChDir (ThisWorkbook.Path) FileName = Dir("*.xls") ↓ FileName = Dir(ThisWorkbook.Path & "\*.xls") で良いのではないでしょうか?
補足
>FileName = Dir(ThisWorkbook.Path & "\*.xls") このやり方も試したのですがエラーが出てしまいます。 実行時エラー1004「ファイル名およびファイルの保存場所が正しいかどうか確認して下さい」というようなエラーです。 ドライブ名も指定せずにファイルをどんなドライブに移動しても対応できるようにしたいのですが…。
- zap35
- ベストアンサー率44% (1383/3079)
>カレントフォルダをオプションで違うドライブに設定しているとうまく動作しないのですが このマクロはアクティブなブックの保存先ディレクトリにある全てのブックを開く仕様になっていると思います。ですから上記の意味がよく理解できません。 「\\AAAA\BB」とありますが、今の仕様をネットワークドライブのフォルダにあるエクセルファイルを開くように変えたいということでしょうか? もしそうなら、 ChDir (ThisWorkbook.Path)はカレントディレクトリを変更する命令ですから、意味が分かれば簡単だと思います ChDir ("\\AAAA\BB") にすればリモートドライブを指定できます。またローカルディスクなら ChDir ("D:\AAAA\BB") のようにフルパスで指定すれば良いと思います。 質問の意味が正確に理解できていませんので、的はずれならご容赦ください。
補足
>「\\AAAA\BB」とありますが、今の仕様をネットワークドライブのフォルダにあるエクセルファイルを開くように変えたいということでしょうか? ネットワークドライブ、ローカルディスク両方に対応したいということです。パスは特定でなく、マクロを実行するファイルを別のフォルダに移動したらその移動先のフォルダ内のファイルを開けるようにしたいということです。
お礼
有難うございます。 ham_kamoさんのやり方で、思う通りの動作が実現できました。 他のPCで試しても問題ありません。 いろいろな方に返答いただき有難うございます。 質問がうまく出来ていなかったため混乱させてしまったようで 申し訳ありませんでした!