- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ワークシート Activate イベントの発生方法)
ワークシート Activate イベントの発生方法
このQ&Aのポイント
- ワークブック起動時、最初に起動する必要があるモジュールの起動方法について知りたい
- ブック保存時に選択されていたシートではワークブック起動時に Activate イベントが発生しない
- ThisWorkbook モジュールで別のシートを選択し、改めて目的のシートを選択することでイベントを発生させているが、よりスマートな解決方法を知りたい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>スマートな解決方法がないでしょうか? ⇒何がスマートか判りませんが、現在のThisWorkbook モジュールのWorkbook_Open() イベントを利用されている方法で問題ないと思います。 因みにSelectよりかはActivateでよいのではないでしょうか Private Sub Workbook_Open() Sheets("起動シート名").Activate End Sub
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
回答No.1
>ワークブック起動時、最初に起動する ThisWorkbookにworkbook_Openイベントを書いておきます。
質問者
補足
keitin さん、回答有難うございます。前にも何度かお世話になっています。 私の説明が不明確でしたので、次の通り補足します。 シート B を選択後、シート A を選択する処理は、ThisWorkbookのworkbook_Openイベント に書いてあります。起動後最初に行う処理は、かなり大量で多くの変数を参照しています。この処理をThisWorkbookのworkbook_Openイベント の中に、書くと変数などの受け渡しを全て Public で処理しなければならないと考えてからです。 変数の宣言を Public でやりたくない場合の処理はどのようにしていらっしゃいますか?
補足
mu2011 さん、またまたお世話になります。 たしかに”スマート”などと云う情緒的な表現は技術的な議論には適さないかもしれませんね。 私が今の処理が気に入らないのは、一瞬 B シートが表示されることです。それに A シートしかない場合、余分な B シートも作っておかねばなりませんよね? 私のこだわりが異常なのかもしれません。 最初は、B.Select、A.Activate と書いておりましたが、今は A.Select と書き直しています。 お二人から頂いた回答で、今の手法以外良い方法は無いようだと判断し、これで質問をクローズします。