質問: なぜ、byval sh as objectは newsheetイベントについて質問なのですが、 なぜ、byval sh as objectは、objectなのでしょうか? sub workbook_newsheet(byval sh as worksheets) や sub workbook_newsheet(byval sh as worksheet) にしたら、コンパイルエラーになります。 シートの方では、 private sub worksheet_change(byval target as range) のようにrange型で宣言しているのに、なぜシートはオブジェクト型で宣言するのでしょうか?
回答: エクセル画面でシート名タブのところを右クリックして挿入という操作を実際に行ってみると、「挿入できるシートの種類」が幾つかあるのが目で見られます。 ワークシートはその内の1つでしかありませんが、newsheetイベントはどれが挿入されても発生します。 共通で受けるには、汎用のobject型で備えておくしかありません。