2014/08/31

Excel2013をオートメーションで使う場合、色々と注意してください

 いや、やられっぱなしですExcel2013!!
 当方が関わっているもので、Excel2013をVB6からオートメーションで使用するものがあるのですが、どうもいろんな支障が出てきています。
 特にわからなかったものが、ワークブックを2枚開き(ワークブックAとワークブックBとします)、ワークブックAからワークブックBに様式となるシートをコピーし、編集後にワークブックB上にあるコピーしたシートを削除するというもの。
 Excel2013のオートメーションオブジェクトを表示状態(オブジェクト.Visible = True  オブジェクト.ScreenUpdating = True)にして動作させた場合には正常に動作するのですが、非表示モード(前述のプロパティをfalse)の場合、1004ランタイムエラーが発生する始末。

 ネット検索をすると、なんとMSのページに不具合と解決策が出ているではないですか!!

Excel 2013 をオートメーションで実行し、異なるウィンドウのシートをコピー後にブックのシートを削除すると、エラーが発生する

 これで解決と言いたいところですが、当方の環境では、ワークブックBを.Activateしても正常に動作しませんでした。

 おそらくイベントの目詰まりや、スレッドの処理など色々と関係していることがあるように思われます。
 当方は、オートメーションを諦め、Excel 側で処理するマクロにすることで対処しました。

 皆さん、Excel2013をオートメーションで使うつもりの方は、参考にしていただけると幸いです。


0 コメント:

コメントを投稿