別のワークシートを開かせない
別シートが選択されたら練習シートへ戻します。
実行前に確認
- 閲覧制限やセキュリティ対策にはなりません。マクロ無効時は作用せず、削除・非表示等も防ぎません。練習シートは表示したままにします。
1サンプルコード
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim oldEvents As Boolean
If Sh.Name = "練習" Then Exit Sub
oldEvents = Application.EnableEvents
On Error GoTo CleanUp
Application.EnableEvents = False
Me.Worksheets("練習").Activate
CleanUp:
Application.EnableEvents = oldEvents
End Sub図で見る操作の流れ
イメージ図概念図:別シートへ切り替えたとき、練習へ戻します。
手動:配置
ThisWorkbookへコードを貼り付け、練習を表示
手動:切り替え
「別シート」の見出しをクリック
マクロ:戻す
イベントを一時停止して「練習」をアクティブ化
マクロ:復元
EnableEventsを変更前の状態へ戻す
練習を選んだ場合はそのまま終了。練習は表示状態が必要で、マクロ無効時の閲覧を防ぐ仕組みではありません。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する3つの手順で、コードの使い方を確認できます
- 1
練習用のブックをExcelマクロ有効ブック(.xlsm)で保存します。「練習」と「別シート」の2枚を作り、「練習」を表示します。
- 2
Alt+F11でVBEを開きます。左のプロジェクト一覧でこのブックの[Microsoft Excel Objects]→[ThisWorkbook]をダブルクリックし、コードを貼り付けます。
- 3
F5では実行せず、Excelに戻り「別シート」の見出しをクリックします。自動的に「練習」へ戻ることを確認します。