- ベストアンサー
Excelマクロでの再読込み方法
Excelマクロでの記述で困っています。 自分自身のファイルを保存することなく再読み込みしたいのですがどのように記述すればよいのでしょうか? FileOpen等の命令ではどうしてもエラーが出ます。警告を無視する記述を書いてもエラーがでてしまいます。そもそも、そのようなことができないものなのでしょうか?よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
使ったことは無いですが、ヘルプにこうありました。 ActiveWorkbook.UpdateFromFile 頑張ってくださいヽ(^。^)ノ
その他の回答 (3)
- Samurai-Jack
- ベストアンサー率18% (130/697)
自分自身のファイルというのは、マクロが記述されているファイルのことでしょうか?もしそうだとすると、再読み込みはできないのではないでしょうか? 再読み込みは、一旦現在のファイルを閉じて、その後新しいファイルを読み込みますので、現在のファイルを閉じた時点で、プログラムは終わってしまいますよね? したがって原理的には、現在のファイルを閉じ、新しいファイルを開くバッチファイルをShell関数で読み出すようにしないといけないと思います。
補足
おっしゃる通り、はじめはそう考えたのですが、マクロでなく、通常の操作で可能(開いているファイルを再度起動した場合、警告「開いているファイルの内容が元に戻るぞという警告」がでますが、それをOKすれば元ファイルにもどりますね)なことをマクロで実現したいのです。警告を無視するマクロの記述をしてもうまくいかないので困っているところです。 ActiveWorkbook.UpdateFromFileでもだめなんでしょうか?
- snoopy64
- ベストアンサー率42% (337/793)
あ゛~またやってしまいました! 今、動かしてみたら、ぜんぜんだめじゃないですか(-_-;) 本当にごめんなさい<(_ _)>
- snoopy64
- ベストアンサー率42% (337/793)
失礼しました。 では、ブックを開いた直後に ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly としておいてから ActiveWorkbook.UpdateFromFile とすればどうでしょうか。 またはずしてたらごめんなさい。 頑張ってくださいヽ(^。^)ノ
お礼
はじめにファイルを開く時に読み取り専用で開けば、ActveWorkbook.UpdateFromFileでうまくいきました。 このマクロはネット上でもあまり解説されていません。大変助かりました。ありがとうございました。
補足
回答ありがとうございます。早速実行しましたが、実行エラー1004がでます。また、ご教示いただいた命令は、保存されているファイルが現状開いているファイルより新しい場合に、有効であるみたいなんです。実行したいのはむしろ逆で、古い元のファイルに戻りたいのです。よろしくお願いします。