← コード一覧へ戻る
実務シート

別のワークシートを開かせない

別シートが選択されたら練習シートへ戻します。

実行前に確認

  • 閲覧制限やセキュリティ対策にはなりません。マクロ無効時は作用せず、削除・非表示等も防ぎません。練習シートは表示したままにします。

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

図で見る操作の流れ

イメージ図

概念図:別シートへ切り替えたとき、練習へ戻します。

  1. 手動:配置

    ThisWorkbookへコードを貼り付け、練習を表示

  2. 手動:切り替え

    「別シート」の見出しをクリック

  3. マクロ:戻す

    イベントを一時停止して「練習」をアクティブ化

  4. マクロ:復元

    EnableEventsを変更前の状態へ戻す

練習を選んだ場合はそのまま終了。練習は表示状態が必要で、マクロ無効時の閲覧を防ぐ仕組みではありません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する3つの手順で、コードの使い方を確認できます
  1. 1

    練習用のブックをExcelマクロ有効ブック(.xlsm)で保存します。「練習」と「別シート」の2枚を作り、「練習」を表示します。

  2. 2

    Alt+F11でVBEを開きます。左のプロジェクト一覧でこのブックの[Microsoft Excel Objects]→[ThisWorkbook]をダブルクリックし、コードを貼り付けます。

  3. 3

    F5では実行せず、Excelに戻り「別シート」の見出しをクリックします。自動的に「練習」へ戻ることを確認します。

使っている機能の公式ドキュメント(Microsoft Learn)