|
やまP さん、こんばんわ。
>以下の内容のアドインを配布したいと思っております。
>・ツールバーに「新メニュー」というオリジナルメニューを作る。
>・「新メニュー」のサブメニューに「値の貼り付け」という既存の機能を追加する。
該当のコマンドのIDを指定することで機能を追加できます。
ただし、EXCEL2003ではId:=370なのですが、ほかのバージョンでは違う可能性があるので、検索するようにしています。
Sub test2()
Dim cb As CommandBarControl, INum&
'値貼り付けのコマンドを検索
For II& = 1 To 40000
Set cb = Nothing
On Error Resume Next
Set cb = Application.CommandBars.FindControl(ID:=II&)
On Error GoTo 0
'すでにコマンドバーに乗せていたら後者、それ以外は前者で該当しました(XL2003)
If Not cb Is Nothing Then
If cb.Caption = "値(&V)" Or cb.Caption = "値の貼り付け(&P)" Then
INum& = II&: Exit For
End If
End If
Next
If INum& = 0 Then
MsgBox "みつかりませんでした", vbExclamation
Else
'メニューバーにコマンド追加
With Application.CommandBars("Worksheet Menu Bar")
With .Controls.Add(ID:=INum&)
.BeginGroup = True
End With
End With
End If
'
Set cb = Nothing
End Sub
うまくいかなかったら、一度どれかのバーに乗せてIDを判定し、EXCELのバージョンごとにIDを分岐するようにしてみてください。EXCEL2007はコマンドバーがない(リボンだそうです)という話なのでテストはしていません。
|
|