@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

excelでメニュー追加について

投稿者投稿内容
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-01-31 23:40

ご返事にしたがっていろいろやってみましたが、、

難しくてわかりません。

ㅠㅠ


まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-02-01 00:11
よく考えたら、
引用:

With .Controls.Add(Type:=msoControlPopup, Temporary:=True)

With .Controls.Add(Type:=msoControlButton, Temporary:=True)


AddメソッドにNameパラメータでブックごとに異なる名前を付けるのがいちばん簡単。
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-02-01 10:38
.
.
With .Controls.Add(Name:="mymenu", Type:=msoControlPopup, Temporary:=True)
.
.
のように、やりましたが、
「コンパイルエラー:名前付き引数が見つかりません。」という
エラーが出てしまいます。

ちょっと応用して、
メニューことのIndex(プロパーティがありました)を変数に保持しておいて、workbook closeの際,
そのindexのメニューを削除するようにしたら、うまくいきました。

以下は変更したコードです。

Private Sub Workbook_Open()

With Application.CommandBars("worksheet menu bar")
On Error Resume Next
.Controls("選択(&L)").Delete

With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
.FaceId = 59
.BeginGroup = True
.Caption = "選択(&L)"

With .Controls.Add(Type:=msoControlButton, Temporary:=True)
.FaceId = 1954
.Caption = "test"
.OnAction = "sub_test"
menuindex = .Index '-->menuindex変数宣言必要です
End With

End With
End With

Exit Sub

End Sub

Sub sub_test()

MsgBox "from Book1.xls"

End Sub

Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar").Controls(menuindex).Delete
end sub


いろいろ有り難うございました。


スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-02-01 10:41
すみません。
コード間違っていましたので、修正します。

Private Sub Workbook_Open()

With Application.CommandBars("worksheet menu bar")
On Error Resume Next

With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
.FaceId = 59
.BeginGroup = True
.Caption = "選択(&L)"
menuindex = .Index '-->menuindex変数宣言必要です

With .Controls.Add(Type:=msoControlButton, Temporary:=True)
.FaceId = 1954
.Caption = "test"
.OnAction = "sub_test"
End With

End With
End With

Exit Sub

End Sub

Sub sub_test()

MsgBox "from Book1.xls"

End Sub

Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar").Controls(menuindex).Delete
end sub

スキルアップ/キャリアアップ(JOB@IT)