即効テクニック

メニューバー・ツールバー関連のテクニック

ツールバーを変更できないようにする

(Excel 2000/2002/2003)
新しいツールバーを追加するには、CommandBarsコレクションのAddメソッドを実行します。
次のコードは、新しいツールバーを追加して、ダミーのボタンを配置します。

Sub Sample1()
    Dim myBar As CommandBar, i As Long
    Set myBar = CommandBars.Add         ''新しいツールバーを作成します
    For i = 1 To 3
        myBar.Controls.Add ID:=i + 1    ''ダミーのボタンを追加します
    Next i
    myBar.Visible = True
End Sub
追加したツールバーは、VisibleプロパティにTrueを設定することで表示されます。 上記のように追加したツールバーは、シート上にフローティング状態で表示されます。 ツールバーは画面の四辺にドッキングさせることも可能です。 ツールバーの位置を指定するには、Positionプロパティに表示する位置を指定します。 次のコードは、新しいツールバーを追加して、画面の左端にドッキングさせます。
Sub Sample2()
    Dim myBar As CommandBar, i As Long
    Set myBar = CommandBars.Add         ''新しいツールバーを作成します
    For i = 1 To 3
        myBar.Controls.Add ID:=i + 1    ''ダミーのボタンを追加します
    Next i
    With myBar
        .Position = msoBarLeft         ''ツールバーを左に表示します
        .Visible = True
    End With
End Sub
Positionプロパティに指定できる定数は次の通りです。 定数        値   位置 msoBarLeft     0    左 msoBarTop     1    上 msoBarRight    2    右 msoBarBottom    3    下 msoBarFloting   4  フローティング フローティング状態のツールバーは、タイトルバーをドラッグして表示位置を移動したり、ツールバーの周囲をドラッグして形状を変化させることができます。 そうしたユーザーの操作を制限したいときは、Protectionプロパティを使います。 次のコードは、新しいフローティング状態のツールバーを作り、移動できなくします。
Sub Sample3()
    Dim myBar As CommandBar, i As Long
    Set myBar = CommandBars.Add         ''新しいツールバーを作成します
    For i = 1 To 3
        myBar.Controls.Add ID:=i + 1    ''ダミーのボタンを追加します
    Next i
    With myBar
        .Position = msoBarFloating     ''フローティングにします
        .Protection = msoBarNoMove     ''移動を禁止します
        .Visible = True
    End With
End Sub
Protectionプロパティには次の定数を指定できます。 定数           値  制限 msoBarNoProtection    0   保護しない msoBarNoCustomize     1   ユーザー設定しない msoBarNoResize      2   サイズ変更しない msoBarNoMove       4   移動しない msoBarNoChangeVisible   8   非表示にしない msoBarNoChangeDock    16   フリーにしない msoBarNoVerticalDock   32   垂直に固定しない msoBarNoHorizontalDock  64   水平に固定しない