目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
91 / 277 ←次へ | 前へ→

【201】ボタンにパラメータを持たす、ボタン名(キャプション)の取得
Excel  Jaka  - 07/7/13(金) 15:16 -

引用なし
パスワード
   メニューバーにボタンがこんな感じとして。

新メニュー
 │
 ├ マクロ1
 │
 ├ マクロ2
 │
 ├ マクロ3▼ ─ マクロ3-1
 │
 └ マクロ4▼ ─ パラマクロ4-1 キャプション名取得は、この階層まで。
        │
         └ パラマクロ4-2
            │ 
            │ ↓ 注)キャプション名取得は、この階層以下は対応させてません。
             └ マクロ5▼ ─ パラマクロ5-1


Sub パラメータの場合()
With Application.CommandBars("Worksheet Menu Bar").Controls
  With .Add(Type:=msoControlPopup, Temporary:=True)
    .Caption = "新メニュー"
    With .Controls
      With .Add(Type:=msoControlButton)
        .Caption = "マクロ1"
        .OnAction = "Mcro1"
        .Parameter = "パラマクロ1"
      End With
      With .Add
        .Caption = "マクロ2"
        .OnAction = "Mcro1"
        .Parameter = "パラマクロ2"
      End With
      With .Add(Type:=msoControlPopup)
        .BeginGroup = True
        .Caption = "マクロ3"
        With .Controls.Add
          .Caption = "マクロ3-1"
          .OnAction = "Mcro1"
          .Parameter = "パラマクロ3-1"
        End With
      End With
      With .Add(Type:=msoControlPopup)
        .Caption = "マクロ4"
        With .Controls
           With .Add
             .Caption = "マクロ4-1"
             .OnAction = "Mcro1"
             .Parameter = "パラマクロ4-1"
           End With
           With .Add
             .Caption = "マクロ4-2"
             .OnAction = "Mcro1"
             .Parameter = "パラマクロ4-2"
           End With
        End With
      End With
    End With
  End With
End With
End Sub

Sub Mcro1()
With Application.CommandBars.ActionControl
  MsgBox "ボタンキャプション" & vbLf & .Caption & vbLf & vbLf & _
      "パラメータ" & vbLf & .Parameter
End With
End Sub

・余談
自分で使っているメニューバーは、独自のアイコンを持たせたいためマクロでボタン等は作ってません。
マクロでオリジナルアイコンを反映させるには、どこかのシートにアイコン用図形を貼り付けておいて、それをコピー、貼り付けを行うので、エクセルに貼り付けとして先にコピー、エクセル起動、貼り付けの手順を踏むとコピーされたアイコンが張り付くといった情けない結果になるから.....。

で、どうやっているのかといえば、ユーザー設定で作っておいて、起動時にメニューバーに移動させる方法を取ってます。
至極たまに、起動時にエラーが発生する時がありますが、エクセルの不具合でボタンを移動後、コピー元のツールバーを消せなかった時におきます。そういう時は、手動でそのツールバーを消してやれば良いです。
1,724 hits

【42】Excel 97 以降で、メニューを簡単に追加/削除したい 谷 誠之 04/4/9(金) 21:43 Excel[未読]
【43】Excel 97 以降で、メニューを簡単に追加するた... 谷 誠之 04/4/9(金) 21:50 Excel[未読]
【44】Excel 97 以降で、メニュー項目を簡単に追加す... 谷 誠之 04/4/9(金) 21:54 Excel[未読]
【45】Excel 97 以降で、メニューを簡単に追加する例 谷 誠之 04/4/9(金) 21:59 Excel[未読]
【91】Re:Excel 97 以降で、メニューを簡単に追加す... Jaka 05/3/10(木) 13:53 Excel[未読]
【200】上のコードに不具合があります。 Jaka 07/7/13(金) 15:12 Excel[未読]
【202】誤字修正 Jaka 07/7/13(金) 15:20 Excel[未読]
【201】ボタンにパラメータを持たす、ボタン名(キャ... Jaka 07/7/13(金) 15:16 Excel[未読]

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
91 / 277 ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free