Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8909 / 13646 ツリー ←次へ | 前へ→

【30339】コマンドの追加と変更について mitu 05/10/25(火) 16:39 質問[未読]
【30385】Re:コマンドの追加と変更について Jaka 05/10/26(水) 13:16 回答[未読]
【30414】Re:コマンドの追加と変更について mitu 05/10/27(木) 3:23 お礼[未読]

【30339】コマンドの追加と変更について
質問  mitu  - 05/10/25(火) 16:39 -

引用なし
パスワード
   CommandBars("Cell").Controls.Addを用いて
右クリックした際に開くコマンドを追加しています。

追加したいコマンドの数が10個以上になるため、セルのカラムによって、コマンドの内容を一部変更することで、全体の数を押さえたいと考えています。

カラムの変更に伴い、その都度コマンド初期化して、必要なコマンドを追加し直すことをしないで、

追加したコマンドの複数個だけを別のコマンドに置き換え方法があれば、ご教授お願いします。

【30385】Re:コマンドの追加と変更について
回答  Jaka  - 05/10/26(水) 13:16 -

引用なし
パスワード
   メニューを出し入れするより、メインマクロの方で自動で振り分けた方がいいと思いますけど...。
いったい何をしようとしているのか解りませんが...。
ごちゃごちゃしたメニューやツールバーは、うざったくて使いづらいと思います。

書換えは、単純にキャプションやマクロ登録名を換えてやればいいです。

Sub tututu()
  Set RigMen = Application.CommandBars("cell").Controls.Add _
     (Type:=msoControlPopup, temporary:=False)
  With RigMen
    .Caption = "aaa"
  End With
  Set RSub1 = RigMen.Controls.Add
  With RSub1
    .Caption = "Macro1"
    .OnAction = "Macro1"
  End With
  Set RSub2 = RigMen.Controls.Add
  With RSub2
    .Caption = "Macro2"
    .OnAction = "Macro2"
  End With
  Set RSub3 = RigMen.Controls.Add
  With RSub3
    .Caption = "Macro3"
    .OnAction = "Macro3"
  End With
End Sub

Sub Macro1()
MsgBox "Macro1"
End Sub

Sub Macro2()
MsgBox "Macro2"
End Sub

Sub Macro3()
MsgBox "Macro3"
End Sub

Sub Macro4()
MsgBox "Macro4"
End Sub

Sub Macro5()
MsgBox "Macro5"
End Sub

Sub hehe()
With Application.CommandBars("cell").Controls("aaa")
  .Controls("Macro1").Caption = "M78"
  .Controls("M78").OnAction = "Macro4"
  .Controls("Macro3").Caption = "777"
  .Controls("777").OnAction = "Macro5"
End With
End Sub

【30414】Re:コマンドの追加と変更について
お礼  mitu  - 05/10/27(木) 3:23 -

引用なし
パスワード
   ▼Jaka さん:
ご回答有難うございました。
いつもお世話になり恐縮しております。

>メニューを出し入れするより、メインマクロの方で自動で振り分けた方がいいと思いますけど...。
>いったい何をしようとしているのか解りませんが...。

全てのControlsを表示させると数が多くなるので、
セルの列によって、表示するCommandBarsの中味を変更したいのです。

そのために、都度リセットとして、作成し直すのは、大変なので、中味の一部を入れ替えたいのです。

>ごちゃごちゃしたメニューやツールバーは、うざったくて使いづらいと思います。
>
>書換えは、単純にキャプションやマクロ登録名を換えてやればいいです。
>
>Sub hehe()
>With Application.CommandBars("cell").Controls("aaa")
>  .Controls("Macro1").Caption = "M78"
>  .Controls("M78").OnAction = "Macro4"
>  .Controls("Macro3").Caption = "777"
>  .Controls("777").OnAction = "Macro5"
>End With
>End Sub

真さに、このようなことを、したかったのです。
大変参考になります。ありがとうございました。

8909 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free