3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

メニューバーの追加・削除を行うするマクロ

2010年8月1日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

エクセルマクロ達人養成塾 小川です。

昨日は、「イベントとフォーム」をテーマにした、受講生限定の上級講座でした。

今日は、そのときに紹介したマクロをひとつ。

自作のメニューバーを追加したり、削除したりするマクロです。

以下のサンプルで、

AddMenuBar

や、

DelMenubar

を、

Workbook_WindowActivate

や、

Workbook_WindowDeactivate

のイベントに関連づけて利用します。

Worksheet_Activate

や、

Worksheet_Deactivate

でも、良いかもしれません。

Option Explicit
Public Sub AddMenuBar()
  DelMenubar
  
  Dim cdBar As CommandBarControl
  Dim cbCtrl As CommandBarControl
  
  Set cdBar = _
    CommandBars(“Worksheet Menu Bar”).Controls.Add _
    (Type:=msoControlPopup, Temporary:=True)
  cdBar.Caption = “Te&st”
  
  Set cbCtrl = cdBar.Controls.Add
  With cbCtrl
    .Caption = “&Move to current”
    .OnAction = “Move_To_Current”
    .BeginGroup = False
    .FaceId = 276
  End With
  
  Set cbCtrl = cdBar.Controls.Add(Type:=msoControlPopup)
  With cbCtrl
    .Caption = “&Thru”
    .BeginGroup = False
    With cbCtrl.Controls.Add()
      .Caption = “&1 day”
      .OnAction = “Thru1day”
      .FaceId = 1640
    End With
    With cbCtrl.Controls.Add()
      .Caption = “&Days”
      .OnAction = “Thrudays”
      .FaceId = 2161
    End With
  End With
  
  Set cbCtrl = cdBar.Controls.Add
  With cbCtrl
    .Caption = “&Copy Row”
    .OnAction = “CopyRow”
    .BeginGroup = False
    .FaceId = 278
  End With
  
End Sub
Public Sub DelMenubar()
  Dim myBar As CommandBar
  Set myBar = CommandBars(“Worksheet Menu Bar”)
  On Error Resume Next
  myBar.Controls(“Te&st”).Delete
  On Error GoTo 0
End Sub
Private Sub Scheduler()
  Debug.Print “Scheduler”
End Sub
Private Sub Move_To_Current()
  Debug.Print “Move_To_Current”
End Sub
Private Sub Thru1day()
  Debug.Print “Thru1day”
End Sub
Private Sub Thrudays()
  Debug.Print “Thrudays”
End Sub
Private Sub CopyRow()
  Debug.Print “CopyRow”
End Sub

まずは、訳が分からなくても、動かしてみてください。

中身についてはそのうち解説したいと思いますが。

解説なしで理解するには、メニューバーもオブジェクトのひとつだということ、、VBAから操作できるという認識をしっかり持った上で、

○コレクションの中である特定ののオブジェクトを指定する方法
○Setステートメント
○Withステートメント

といった、オブジェクト操作で出てくる構文をしっかり理解していることが必要かもしれません。

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド