エクセルでいろいろと書式を作っていますがその多くはエクセルを知らなくても使えるようにフローティング・メニューからコマンドを実行できるようにしてありますが実は私しか使わない書式でそうしていないものがあります。
月に一回しか使わない書式なのですがメニューを作っておけばそれはそれで楽になるのは分かっています、大量に商品を発注するために使う書式ですがいつも「ツール」「マクロ」「マクロ」と辿ってマクロを使っています、要するにメニューを作るのが面倒なわけですが・・。
でも作ってみようと思ってふと考えました、フローティング・メニューではなくこの書式を開いたときだけエクセルの通常のメニューみたいな感じでその脇に表示できないかと・・・、当然この書式を閉じればそれが消えて別のファイルを開いたときは影響しないような・・。
そしたらでーきた!割合簡単でしたね、こうすれば少し邪魔なときもあるフローティング・メニューにしなくても済みました。
Sub auto_open()
Dim 親メニュー As Variant, 子メニュー As Variant
'親メニューを追加
Set 親メニュー = Application.CommandBars("Worksheet Menu Bar") _
.Controls.Add(Type:=msoControlPopup)
親メニュー.Caption = "インチキメニュー(&K)"
'一つ目の子メニューとコマンドを追加
Set 子メニュー = 親メニュー.Controls.Add
With 子メニュー
.Caption = "支離(&S)"
.OnAction = "支離"
.BeginGroup = False
End With
'二つ目の子メニューとコマンドを追加
Set 子メニュー = 親メニュー.Controls.Add
With 子メニュー
.Caption = "滅茶(&M)"
.OnAction = "滅茶"
.BeginGroup = False
End With
'三つ目の子メニューとコマンドを追加
Set 子メニュー = 親メニュー.Controls.Add
With 子メニュー
.Caption = "苦茶(&K)"
.OnAction = "苦茶"
.BeginGroup = False
End With
End Sub
Sub auto_close()
On Error GoTo Fin
Application.CommandBars("Worksheet Menu Bar") _
.Controls("インチキメニュー(&K)").Delete
Fin:
End Sub
月に一回しか使わない書式なのですがメニューを作っておけばそれはそれで楽になるのは分かっています、大量に商品を発注するために使う書式ですがいつも「ツール」「マクロ」「マクロ」と辿ってマクロを使っています、要するにメニューを作るのが面倒なわけですが・・。
でも作ってみようと思ってふと考えました、フローティング・メニューではなくこの書式を開いたときだけエクセルの通常のメニューみたいな感じでその脇に表示できないかと・・・、当然この書式を閉じればそれが消えて別のファイルを開いたときは影響しないような・・。
そしたらでーきた!割合簡単でしたね、こうすれば少し邪魔なときもあるフローティング・メニューにしなくても済みました。
Sub auto_open()
Dim 親メニュー As Variant, 子メニュー As Variant
'親メニューを追加
Set 親メニュー = Application.CommandBars("Worksheet Menu Bar") _
.Controls.Add(Type:=msoControlPopup)
親メニュー.Caption = "インチキメニュー(&K)"
'一つ目の子メニューとコマンドを追加
Set 子メニュー = 親メニュー.Controls.Add
With 子メニュー
.Caption = "支離(&S)"
.OnAction = "支離"
.BeginGroup = False
End With
'二つ目の子メニューとコマンドを追加
Set 子メニュー = 親メニュー.Controls.Add
With 子メニュー
.Caption = "滅茶(&M)"
.OnAction = "滅茶"
.BeginGroup = False
End With
'三つ目の子メニューとコマンドを追加
Set 子メニュー = 親メニュー.Controls.Add
With 子メニュー
.Caption = "苦茶(&K)"
.OnAction = "苦茶"
.BeginGroup = False
End With
End Sub
Sub auto_close()
On Error GoTo Fin
Application.CommandBars("Worksheet Menu Bar") _
.Controls("インチキメニュー(&K)").Delete
Fin:
End Sub