Excelのメニューバーに独自のメニューを追加する。

Excel Commandbars Menu

Excelのアドインを作ろうとしているときに使った一部分を改変したサンプルコードです。
 メニューバー以外の場所(例えば右クリックのコンテキストメニュー)にも同じような方法で独自メニューを簡単に追加できるので時間があるときに追記します。
 VBAのマクロを使わなくても[表示]-[ツールバー]-[ユーザー設定]で同じようなことは出来ます。用途に応じて使い分けてください。

'AddMenu()で独自のメニューをメニューバーに追加する。
'RemoveMenu()で追加したメニューバーを削除する。
'追加したメニューでアクティブセルに日付、
'現在日時を挿入できる。

Sub AddMenu()
    Dim Bar As CommandBar
    Dim Ctr As CommandBarControl
    
    Set Bar = Application.CommandBars("Worksheet Menu Bar")
    '"Worksheet Menu Bar"の所を変えると色々な場所に自分の
    'メニューが作れる。*01
    
    Set Ctr = Bar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
    'msoControlPopupの所も他に色々とオプションあり。*02
    
    With Ctr
        .Caption = "私のメニュー(&M)"
        .Visible = True
        .Controls.Add Type:=msoControlButton
        .Controls(1).Caption = "NOW関数を挿入(&N)"
        .Controls(1).OnAction = "InstertNowFunction(0)"
        .Controls(1).FaceId = 93
        'FaceIDは5000種類位あるようです。[http://d.hatena.ne.jp/Cassiopeia/20070511/1178888111]
    End With

    With Ctr
        .Controls.Add Type:=msoControlButton
        .Controls(2).Caption = "日付を挿入(&D)"
        .Controls(2).OnAction = "InsertDate(0)"
        .Controls(2).FaceId = 83
    End With

End Sub

Sub InstertNowFunction(Dammy As Integer)
'不要な引数をとっているのは[ツール]-[マクロ]-[マクロ]
'のダイアログにこの関数を非表示にするため。

    ActiveCell.Value = "=(NOW())"

End Sub

Sub InsertDate(Dammy As Integer)

    ActiveCell.Value = Date

End Sub

Sub RemoveMenu()

    CommandBars("Worksheet Menu Bar").Controls("私のメニュー(&M)").Delete

End Sub