Auto_Openで動作するマクロがWorkbook_Openではエラーになってしまうが?
Question 104.3 Excel VBA Borad (掲示板)より Previous Next
はじめまして。 いろいろ当たってみましたがわからずたどり着きました。 すみません。よろしくお願いいたします。
bookAのマクロです。
オープン時に bookB から sheetを 2つほど加工して、bookA に貼り付けたいのです。 そのsheetは関数が多い為、bookB 側でまず sheetのコピーをして、全面値貼り付けした後、bookA に移動する方法をとります。

マクロは組みました。 これが、標準モジュールの 「Auto_Open」なら動きますが ThisWorkbookの 「Private Sub」だと、「実行時エラー(9)インデックスが~」 となります。
場所は、bookB の1つ目のsheetを選んだときです。 具体的には、
Workbooks("材料管理.xls").Activate
Sheets("作業B").Activate
   <====ここです。
画面上は、"材料管理.xls"は開いた状態で止まっています。"作業B"シートではありません。

出来れば ThisWorkbookで動かしたいのですが、どこがいけないのでしょうか。  なお、材料管理.xls の シート名の B は、すべて全角を使っています。
Answer   2011.3. 9 永井善王
エラー画面仰るとおり、Workbook_Openイベントプロシージャーではエラーになりますね。
しかし、これは仕様のようですから、Auto_Openプロシージャ ーで行うより仕方ないようです。 詳細はマイクロソフト社の下記ページをご参照ください。
[XL97]: Open イベント マクロがワークシート アクティブ化しません。

ありがとうございました
長らくご返事が出来ず申し訳ありませんでした。 緊急に仕事が入ってデスクにやっと戻りました。
仕様でしたか! 仕様ではしようが無いですね。笑)
お教えいただいたおかげですっきりしました。ずーっと悩んでおりましたので本当に助かりました。
ありがとうございました。
 

Excel VBA Macro