HOME > 即効テクニック > Excel VBA > メニューバー・ツールバー関連のテクニック > 自作メニューバーのプルダウンメニューに境界線を入れる

即効テクニック

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

自作メニューバーのプルダウンメニューに境界線を入れる

(Excel 97)
下記のようなメニューバーとプルダウンメニューを作成したとします。

ファイル(&F)
   データ保存(&S)
   ページ設定(U)...
   印刷プレビュー(V)
   印刷(P)... Ctrl+P

このプルダウンメニューに境界線を入れて、次のようにします。

ファイル(&F)
   データ保存(&S)
   -------------------
   ページ設定(U)...
   印刷プレビュー(V)
   印刷(P)... Ctrl+P

境界線を入れるには、BeginGroupプロパティを使用します。
BeginGroupプロパティは、Trueを設定すると、指定したコマンドバーコントロールが、コマンドバーコントロールの新しいグループの始まりになり、境界線が入ります。

Sub Sample()
    Dim cstBar  As CommandBar
    Dim cstMenu As CommandBarControl

    On Error Resume Next
    
    Application.CommandBars("barNEW").Delete
    
    On Error GoTo 0
    
    Application.CommandBars.Add Name:="barNEW", Position:=msoBarTop, _
                                MenuBar:=True
    
    Set cstBar = CommandBars("barNEW")
    
    cstBar.Visible = True
    
    Set cstMenu = cstBar.Controls.Add(Type:=msoControlPopup)
    
    cstMenu.Caption = "ファイル(&F)"
    
    With cstMenu
        .Controls.Add Type:=msoControlButton
        .Controls(1).Caption = "データ保存(&S)"
        .Controls(1).OnAction = "MacroXXX"
        .Controls.Add Type:=msoControlButton, ID:=247     'ページ設定
        .Controls(2).BeginGroup = True              '<- これが境界線の指定です
        .Controls.Add Type:=msoControlButton, ID:=109     '印刷プレビュー
        .Controls.Add Type:=msoControlButton, ID:=4       '印刷
    End With

End Sub