Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


41299 / 76736 ←次へ | 前へ→

【40518】Re:シートモジュールのクラス化
回答  Kein  - 06/7/15(土) 15:35 -

引用なし
パスワード
   >複数のシート(SH3,SH4,SH5)で全く同じシートモジュールを記述していて
>とても効率が悪い
誰かがレスしてくれているように、ThisWorkbookモジュールにあるイベント
を使うと、全シート対象のイベントが使えます。例えば

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

というタイトルのマクロなら、引数 Sh には自動的にアクティブシートが
格納されますから

Select Case Sh.Name
  Case "SH3", "SH4", "SH5"
   何かの処理
End Select

などとシート名を判定して、処理を行うかどうかを分岐すれば良いのです。
同様にセル入力イベントの方も

Private Sub Workbook_SheetChange(ByVal Sh As Object,
ByVal Target As Range)

と、シートレベルのイベントと違う点は、引数 Sh の存在だけですから、
冒頭にシート名による条件分岐のコードを持ってくるところも同じですね。

0 hits

【40504】シートモジュールのクラス化 ハナ 06/7/15(土) 9:11 質問
【40505】Re:シートモジュールのクラス化 やっちん 06/7/15(土) 9:53 発言
【40507】Re:シートモジュールのクラス化 neptune 06/7/15(土) 10:48 回答
【40567】Re:シートモジュールのクラス化 ハナ 06/7/18(火) 11:23 お礼
【40516】Re:シートモジュールのクラス化 asahi 06/7/15(土) 14:12 回答
【40518】Re:シートモジュールのクラス化 Kein 06/7/15(土) 15:35 回答

41299 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free