Excel VBA質問箱 IV

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

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


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

【23639】メニューボタン作成について ピングー 05/3/31(木) 18:57 質問[未読]
【23640】Re:メニューボタン作成について ichinose 05/3/31(木) 19:03 発言[未読]
【23652】Re:メニューボタン作成について ピングー 05/4/1(金) 11:07 質問[未読]
【23654】Re:メニューボタン作成について ichinose 05/4/1(金) 12:30 発言[未読]
【23655】Re:メニューボタン作成について ピングー 05/4/1(金) 13:53 お礼[未読]

【23639】メニューボタン作成について
質問  ピングー  - 05/3/31(木) 18:57 -

引用なし
パスワード
   はじめまして
実は、作成したマクロをメニューボタンに登録することをしております。
ひとつのメニューボタンの中に4個程のボタンを作りたい、と考えておりまして、
やっては見たのですが、なかなか作ることができません。
なにかいい方法は、ないのでしょうか。
教えていただきたいのですが・・・。
よろしくお願いします。

【23640】Re:メニューボタン作成について
発言  ichinose  - 05/3/31(木) 19:03 -

引用なし
パスワード
   ▼ピングー さん:
こんばんは。

>はじめまして
>実は、作成したマクロをメニューボタンに登録することをしております。
>ひとつのメニューボタンの中に4個程のボタンを作りたい、と考えておりまして、
>やっては見たのですが、なかなか作ることができません。
>なにかいい方法は、ないのでしょうか。
>教えていただきたいのですが・・・。
>よろしくお願いします。
このサイトの目安箱に谷さんやJakaさんが参考になりそうなコードを
掲載していますよ!!

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=42;id=FAQ

参考になりませんか?

【23652】Re:メニューボタン作成について
質問  ピングー  - 05/4/1(金) 11:07 -

引用なし
パスワード
   ichinoseさん、どうもありがとうございます。
私の質問の内容が、少し違っておりまして、
メニューバーではなく、ツールバーで、ひとつのツールバー
から複数のツールバーを作りたいのです。
何かいい方法があったら、教えていただきたいのですが・・・。
先ほどの、メニューバーでの方法、参考にさせていただきます。
本当にすみませんが、よろしくおねがいします。

【23654】Re:メニューボタン作成について
発言  ichinose  - 05/4/1(金) 12:30 -

引用なし
パスワード
   ▼ピングー さん:
こんにちは。

>ichinoseさん、どうもありがとうございます。
>私の質問の内容が、少し違っておりまして、
>メニューバーではなく、ツールバーで、ひとつのツールバー
>から複数のツールバーを作りたいのです。
二種類、例題コードを記述します。

新規ブックの標準モジュールに

'============================================
Sub main()
  On Error Resume Next
  bnm = Array("a", "b", "c", "d")
  bact = Array("test1", "test2", "test3", "test4")
  CommandBars("新規ツールバー").Delete
  With CommandBars.Add("新規ツールバー")
   .Visible = True
   For idx = LBound(bnm) To UBound(bnm)
    With .Controls.Add(msoControlButton)
     .Caption = bnm(idx)
     .OnAction = bact(idx)
     .Style = msoButtonCaption
     .BeginGroup = True
     End With
    Next idx
   End With
  On Error GoTo 0
End Sub

'=======================================================
Sub main2()
  On Error Resume Next
  Dim popup As CommandBarPopup
  bnm = Array("a", "b", "c", "d")
  bact = Array("test1", "test2", "test3", "test4")
  CommandBars("新規ツールバー").Delete
  With CommandBars.Add("新規ツールバー")
   .Visible = True
   Set popup = .Controls.Add(msoControlPopup)
   With popup
    .Visible = True
    .Caption = "選択して"
    For idx = LBound(bnm) To UBound(bnm)
     With .Controls.Add(msoControlButton)
      .Caption = bnm(idx)
      .OnAction = bact(idx)
      .Style = msoButtonCaption
      .BeginGroup = True
      End With
     Next idx
    End With
   End With
  On Error GoTo 0
End Sub

'ボタンに登録するマクロtest1〜test4の4つ
'================================================
Sub test1()
  MsgBox "test1"
End Sub
Sub test2()
  MsgBox "test2"
End Sub
Sub test3()
  MsgBox "test3"
End Sub
Sub test4()
  MsgBox "test4"
End Sub


mainとmain2を実行してみて下さい。

違う形のツールバーが作成されると思います。
どちらかがご希望のものでしょうか?

【23655】Re:メニューボタン作成について
お礼  ピングー  - 05/4/1(金) 13:53 -

引用なし
パスワード
   ▼ichinose さん:
>▼ピングー さん:
>こんにちは。
>
>>ichinoseさん、どうもありがとうございます。
>>私の質問の内容が、少し違っておりまして、
>>メニューバーではなく、ツールバーで、ひとつのツールバー
>>から複数のツールバーを作りたいのです。
>二種類、例題コードを記述します。
>
>新規ブックの標準モジュールに
>
>'============================================
>Sub main()
>  On Error Resume Next
>  bnm = Array("a", "b", "c", "d")
>  bact = Array("test1", "test2", "test3", "test4")
>  CommandBars("新規ツールバー").Delete
>  With CommandBars.Add("新規ツールバー")
>   .Visible = True
>   For idx = LBound(bnm) To UBound(bnm)
>    With .Controls.Add(msoControlButton)
>     .Caption = bnm(idx)
>     .OnAction = bact(idx)
>     .Style = msoButtonCaption
>     .BeginGroup = True
>     End With
>    Next idx
>   End With
>  On Error GoTo 0
>End Sub
>
>'=======================================================
>Sub main2()
>  On Error Resume Next
>  Dim popup As CommandBarPopup
>  bnm = Array("a", "b", "c", "d")
>  bact = Array("test1", "test2", "test3", "test4")
>  CommandBars("新規ツールバー").Delete
>  With CommandBars.Add("新規ツールバー")
>   .Visible = True
>   Set popup = .Controls.Add(msoControlPopup)
>   With popup
>    .Visible = True
>    .Caption = "選択して"
>    For idx = LBound(bnm) To UBound(bnm)
>     With .Controls.Add(msoControlButton)
>      .Caption = bnm(idx)
>      .OnAction = bact(idx)
>      .Style = msoButtonCaption
>      .BeginGroup = True
>      End With
>     Next idx
>    End With
>   End With
>  On Error GoTo 0
>End Sub
>
>'ボタンに登録するマクロtest1〜test4の4つ
>'================================================
>Sub test1()
>  MsgBox "test1"
>End Sub
>Sub test2()
>  MsgBox "test2"
>End Sub
>Sub test3()
>  MsgBox "test3"
>End Sub
>Sub test4()
>  MsgBox "test4"
>End Sub
>
>
>mainとmain2を実行してみて下さい。
>
>違う形のツールバーが作成されると思います。
>どちらかがご希望のものでしょうか?
どうもありがとうございました。
私としては、main2の方法を希望していました。
mainの方法も結構いいですね。
助かりました。
本当にありがとうございました。

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