No.2ベストアンサー
- 回答日時:
VBEのVBAProjectにSheet1などシートモジュールがあります。
そのWorkBook版だと思えばよいと思います。(1)Workbookのイベントのプロシージュアー
(2)各個々のSheetに関連して、その上(どのシートにおいてもそのイベントが起これば)のレベルでシートのイベントを捉える
(3)Window画面関連
(4)その他
などをここに書く。
(1)はOpen、Close、Activate、それらのBefoe版
(2)はSheettXXXの形のもの、Newsheet
(3)はWindowActivateなど
(4)その他PivotTableやAddinとの絡み
ーー
>便利な機能があるのでしょうか
便利というか、ユーザーが利用したいとき、あれば使えて貴重、無ければどうするかというものだと思います。
これ以外のほしいものは無いのか、とは思います。
(1)以外は、高等な使い方をする方向きの選択肢という気がします。
No.1
- 回答日時:
例えば各シートには Activate イベントがあります。
TshisWorkbook にも SheetActivate イベントがあります。
これらの違いをよ~く見てください。
Sheet1 の Activate イベントは
Private Sub Worksheet_Activate()
となっており、
ThisWorkbook の方は
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
となっています。違いが分かりましたか?
ThisWorkbook の Activate イベントには引数がありますね。
この引数は何だと予想しますか?
アクティブになったシートを表す Worksheet オブジェクトです。
シートがアクティブになったときに何らかの処理をしたい場合、それが Sheet1 の場合だけなら Sheet1 の Activate イベントに記述すれば済みますが、いくつかのシートである程度共通した処理をしたい場合は ThisWorkbook の SheetActivate イベントを利用します。
下記コードはアクティブになったシートのセル A1 に、現在の日時を書き込み、さらにはシートの名前によって処理を分けています。(具体的な処理は書いてませんが)
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Cells(1, 1).Value = Now()
Select Case Sh.Name
Case "Sheet1"
' 処理1
Case "Sheet2"
' 処理2
Case "Sheet3"
' 処理3
End Select
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 3個のfileのセルデータを1個のfileのセルに貼り付けるVBAコードですが。 1 2023/02/20 09:21
- Visual Basic(VBA) VBAでWorkbook.addの使い方 3 2023/02/01 11:58
- Excel(エクセル) excelvbaのenableeventsについて 3 2022/08/30 11:20
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
ブック名、シート名を他のモジ...
-
ユーザーフォームに入力したデ...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
別のシートから値を取得するとき
-
excelのマクロで該当処理できな...
-
実行時エラー1004「Select メソ...
-
エクセルVBAでダブルクリックを...
-
VBAで同じシート名のコピー時は...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
Excel VBA 複数行を数の分だけ...
-
XL:BeforeDoubleClickが動かない
-
Excel チェックボックスにチェ...
-
エクセルのマクロで条件一致の...
-
【Excel VBA】Worksheets().Act...
-
Access エクセルシート名変更
-
いつもお世話になっております...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAで大量のファイルをシート名...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
ブック名、シート名を他のモジ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
Excel VBA 複数行を数の分だけ...
-
エクセルのマクロについて教え...
-
VBA 最終行まで数式をコピーする
おすすめ情報