プロが教えるわが家の防犯対策術!

この質問の主旨は『ワークブック起動時、最初に起動する必要があるモジュールの起動方法』を知りたいと云うことです。
以下の説明では私が実験で得た、勝手な思い込み知識が含まれていますので、誤りが有ればご指摘ください。尚、Excel 2010 を使用しています。

私の実験では、ブック保存時に選択されていたシート(シート名 A)ではワークブック起動時にシートの Activate イベントが発生しません。そのため、ThisWorkbook モジュールで A とは無関係なシート B を最初に選択(Select メソッド使用)した後、改めてシート A を選択してイベントを発生させています。
この自己流解決方法がどうもしっくりせず、モヤモヤを感じています。もっとスマートな解決方法がないでしょうか?
皆様のお知恵を貸してください。

A 回答 (2件)

>スマートな解決方法がないでしょうか?


⇒何がスマートか判りませんが、現在のThisWorkbook モジュールのWorkbook_Open()
  イベントを利用されている方法で問題ないと思います。
  因みにSelectよりかはActivateでよいのではないでしょうか

  Private Sub Workbook_Open()
  Sheets("起動シート名").Activate
  End Sub

この回答への補足

mu2011 さん、またまたお世話になります。
たしかに”スマート”などと云う情緒的な表現は技術的な議論には適さないかもしれませんね。
私が今の処理が気に入らないのは、一瞬 B シートが表示されることです。それに A シートしかない場合、余分な B シートも作っておかねばなりませんよね?
私のこだわりが異常なのかもしれません。

最初は、B.Select、A.Activate と書いておりましたが、今は A.Select と書き直しています。
お二人から頂いた回答で、今の手法以外良い方法は無いようだと判断し、これで質問をクローズします。

補足日時:2011/10/13 10:54
    • good
    • 0

>ワークブック起動時、最初に起動する



ThisWorkbookにworkbook_Openイベントを書いておきます。

この回答への補足

keitin さん、回答有難うございます。前にも何度かお世話になっています。
私の説明が不明確でしたので、次の通り補足します。

シート B を選択後、シート A を選択する処理は、ThisWorkbookのworkbook_Openイベント に書いてあります。起動後最初に行う処理は、かなり大量で多くの変数を参照しています。この処理をThisWorkbookのworkbook_Openイベント の中に、書くと変数などの受け渡しを全て Public で処理しなければならないと考えてからです。
変数の宣言を Public でやりたくない場合の処理はどのようにしていらっしゃいますか?

補足日時:2011/10/13 10:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!