エクセル研究室−Excelの基本的な使い方、応用技を紹介

コマンドバー編-エクセルのVBA集


コマンドバー編

セル選択時の右クリックメニューに自分で作成したマクロを登録するには?

'(右クリックメニューへの登録方法)
Sub 右クリック登録()

'『Cell』という名前のコマンドバーにボタンを1番目に追加
With Application.CommandBars("Cell") _
  .Controls.Add(Type:=msoControlButton, Before:=1)
    .Caption = "オリジナルコマンド" 

' コマンド名
    .OnAction = "test" 

'登録したいマクロ名
    .FaceId = 12 

'アイコン番号
End With
End Sub

'(右クリックメニューの解除方法)
Sub 右クリック解除()
Dim C As CommandBarControl

'『Cell』という名前のコマンドバーでループを回して
For Each C In Application.CommandBars("Cell").Controls
 

'『オリジナルコマンド』という名前のコマンドだったら削除
   If C.Caption = "オリジナルコマンド" Then C.Delete
Next C
End Sub



メニューバーにメニューを追加するには?

'(メニューバーへの登録方法)
Sub メニュー登録()

'ワークシートメニューバーの最後にメニューを追加
With Application.CommandBars("Worksheet Menu Bar") _
  .Controls.Add(Type:=msoControlPopup)
  .Caption = "オリジナルメニュー"

'メニュー名
  

'上で作成したメニューに更にボタンを追加
  With .Controls.Add(Type:=msoControlButton)
   

'追加したボタンに名前と割り当てるマクロ名を設定
     .Caption = "オリジナルコマンド1"
     .OnAction = "test1"
  End With
  

'上で作成したメニューに更にボタンを追加
  With .Controls.Add(Type:=msoControlButton)
   

'追加したボタンに名前と割り当てるマクロ名を設定
     .Caption = "オリジナルコマンド2"
     .OnAction = "test2"
  End With
End With
End Sub

'(メニューバーの解除方法)
Sub メニュー解除()
Dim C As CommandBarControl
 

'ワークシートメニューバーでループを回して
For Each C In Application.CommandBars("Worksheet Menu Bar").Controls
 

'『オリジナルメニュー』という名前のコマンドだったら削除
  If C.Caption = "オリジナルメニュー" Then C.Delete
Next C
End Sub



自作のツールバーをマクロで作成するには?

'ツールバーの『添付』機能を使うのが一般的ですが、あえてマクロで作成する方法です。

'(ツールバーの作成方法)
Sub 自作ツールバー作成()

'『オリジナル』という名前のツールバーを作成
With Application.CommandBars.Add(Name:="オリジナル")

'そのツールバーにコントロールを追加
  With .Controls.Add(Type:=msoControlButton)
    .Caption = "オリジナルコマンド"

' コマンド名
    .OnAction = "test"

'登録したいマクロ名
    .FaceId = 12

'アイコン番号
  End With
 

'ツールバーを表示する
  .Visible = True
End With
End Sub

'(ツールバーの削除方法)
Sub 自作ツールバー削除()
Dim C As CommandBar
For Each C In Application.CommandBars
  

'『オリジナル』という名前ツールバーだったら削除
   If C.Name = "オリジナル" Then C.Delete
Next C
End Sub





ページトップ