ユーザーにワークシートの切り替えをしてほしくない場合などに使用できる、シートの切り替えを無効にする方法です。シートのOnSheetActivateプロパティを使います。


シートの切り替えを出来ないようにする方法

■構文
Application.OnSheetActivate = "実行するマクロ名"

VBA入力画面
シート切り替えを無効にするコードの入力画面

入力したコードです。

Private Sub シート2を無効()
    Worksheets("Sheet1").Select
    MsgBox "Sheet2への切り替えはできません"
End Sub

Sub シートの切り替えを出来ないようにする()
    Worksheets("Sheet1").Activate
    Worksheets("Sheet2").OnSheetActivate = "シート2を無効"
End Sub


プログラムの説明


Private Subプロシージャの宣言
Private Sub シート2を無効()
Sheet1を選択する
Worksheets("Sheet1").Select
メッセージボックスの表示
MsgBox "Sheet2への切り替えはできません"
プロシージャの終了
End Sub
Subプロシージャの宣言
Sub シートの切り替えを出来ないようにする()
Sheet1を有効にする
Worksheets("Sheet1").Activate
OnSheetActivateプロパティにマクロ名を設定する
Worksheets("Sheet2").OnSheetActivate = "シート2を無効"
プロシージャの終了
End Sub

シート切り替えを無効にする実行画面

マクロの実行画面です。シートの切り替えを出来ないようにするマクロを実行します。
マクロを実行する

シート切り替えタブでSheet2をクリックすると、Sheet1に戻り「Sheet2への切り替えはできません。」とメッセージが表示されます。
シートが切り替えられない

Excelマクロのサンプルファイル:フリーダウンロード








Copyright (C) excel.usefulhp.com All rights reserved.