| 
    
     |  | おはようございます 
 ▼リョウタ さん:
 >初めて投稿させていただくものですが、質問の答えがお分かりの方はお教えいただければ幸いです。
 >
 >現在 Form を利用した VBA アドインを作成しているのですが、Form の起動時にアクティブ シートの使用中の列と行を
 >ActiveSheet.UsedRange.Columns(.Columns.Count).Column
 >などとして取得しています。この Form には実行ボタンを貼り付けてあり、実行ボタンを押すと、アクティブシートのデータを元にプログラムが実行されます。
 >
 >しかし、Form 起動時のアクティブシートに必ずしもプログラムを実行させたいデータが存在するとも限らないので、ユーザーが Form 起動後に別のシートを選択した場合、その際に Worksheet_Activate イベント (または別のシートが選択されたと分かるイベント) を発生させて Form 起動時と同じように使用中の列と行を取得したいと思っています。
 >
 >Worksheet_Activate イベントプロシージャは、Excel の Visual Basic Editor を開いて
 >VBAProject
 > - Microsoft Excel Objects
 >   - Sheet1 (Sheet1)
 >などのシートのコードエリアに直接書き込むことによってイベントを発生させることはできるようですが、開かれた xls ファイル内のシート群を元に dynamic にイベントを発生させることは可能なのでしょうか?
 >
 >長々と分かりにくい説明になって申し訳ありませんが、お知恵を拝借させていただければ幸いです。よろしくお願いします。
 
 VBAProject
 - Microsoft Excel Objects
 - ThisWorkbook
 
 ThisWorkbookにて
 Private Sub Workbook_SheetActivate(ByVal Sh As Object)
 
 これでイベントを取得できるはずです
 
 |  |