Office2010で作成したExcelマクロファイルはOffice2013では挙動が不安定!?
Excel VBAによるマクロで会社のファイルをいろいろと設定しています。
ちょっと前まで会社から支給されたPCではOffice2010が入っていたのでそちらでマクロを組んで利用していました。
その時はまったく問題がなかったのですが、このたび支給品のPC入れ替えにより、私のPCにもOffice2013が導入されました。
すると…マクロの挙動がイマイチなのです。
原因は一体?
未だにはっきりとした原因がわかっていません。今回の記事は誰か物知りさんが教えてくれないかなぁ~という期待も込めて書いていきます。
まずは、どういう状況のファイルか?ということを書いておきましょう。
前述の通り、Office2010で作成したマクロファイル(ファイルAとします)です。そのファイルから会社の共有サーバー内にあるファイル(ファイルBとします)を開き、選択したセル全体を共有内ファイル(ファイルB)に貼り付けるというマクロを組んでいます。
ファイルA内で処理をするマクロはなんにも問題がなく動作します。
ですが、共有内ファイルBを開くマクロを起動すると「Openメソッドがエラーです」とマクロが止まってしまうのです。
ただ、毎回止まるということでもなく、何がきっかけでそうなるかはわかりませんが急にできたりもします。
Office2013は2010よりもセキュリティポリシーが高いので、ネットワーク内のファイルを開くのに問題があるのかな?と思い、Office2013の「オプション」→「セキュリティセンター」より「信頼できる場所」に共有サーバーを登録したにもかかわらず、不安定です。
結構複雑にマクロを組んでいますが、ファイルA内で完結するマクロはまったく問題ありません。
ただ唯一*「ファイルBにファイルAの選択場所を貼り付ける」という部分だけがエラーとなります。:
マクロの記述は以下のような形です。
Range("選択エリア").Copy
Workbooks.Open "\共有サーバー\ファイルB.xls"
Workbooks("ファイルB.xls").Worksheets(1).Range("選択エリア").PasteSpecial
2行目のWorkbookのところでエラーがよく出ます。
私の考察では、共有内のファイルを開く事自体に問題があると思いましたので、そこを「信頼できる場所」としてOfficeに登録したということです。
登録したことによって10回中10回できなかったのが、10回中4回くらいはできるようになったので改善はしたのでしょうが…謎です。
求む回答!
引き続き私もいろいろと調べてみようとは思いますが、なかなか根本的な問題がわからないので困っています。
Office2010では問題なく使えていたのに…もっと言えばOffice2013でも問題なく使えている人もいるのに、このようなことが起こるというのははっきり言って謎でしかありません。
共有サーバー内のファイルをマクロを通して操作するというマクロプログラムを組んでいる人がいらっしゃったらぜひ解決方法を教えていただきたい。
いや、今後も同様のことが起こった時に困るのでOffice2013と2010でのマクロ使用上の注意とかが知りたいですね…
こういう苦難は再々起こると疲弊しますが、たまにだと「おっ!マクロの勉強チャンスだ!」とも思えますね!
前向きに捉えて、自分自身でも引き続き原因究明に取り組んでいきたいと思います。