[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『自作アイコンをツールバーに表示し、改行?させたい』(しのみや)
(何度もこの掲示板で教えて頂いておりまして、必要な動作が出来るようになり感謝しています。 教えて頂いた記述は活用させて頂いておりますが、今回は質問用に短くさせてもらっております。)
こうったことができるかなと思うことが出てきましたので、教えて頂けると助かります。
現在、アドインでツールバーにこのような感じでボタンを追加しています。
■ ■ ■ | □ □ □ | | ユーザー設定のツールバー|
【現在の記述】 Private Sub Workbook_AddinInstall()
Dim myBar As Office.CommandBar Dim myButton As CommandBarButton Dim myBar_Name As String
myBar_Name = "パレット1" On Error Resume Next Application.CommandBars(myBar_Name).Delete On Error GoTo 0
Set myBar = Application.CommandBars.Add(Name:=myBar_Name, Temporary:=True)
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(255,255,255)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(0,0,0)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(230,0,0)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With myBar.Visible = True
myBar_Name = "パレット2" On Error Resume Next Application.CommandBars(myBar_Name).Delete On Error GoTo 0
Set myBar = Application.CommandBars.Add(Name:=myBar_Name, Temporary:=True)
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(90, 90, 90)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(80, 80, 80)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(70, 70, 70)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
myBar.Visible = True
End Sub
【やりたいこと】
■ ■ ■ | □ □ □ | | | ユーザー設定のツールバー |
↑ここの2・3行目は空白にして、 ↑こちらの1行目に表示させたい
【やってみたこと】 空のバーとボタンを追加してみたところ見た目は出来ました。 しかし当然ですが、空のボタンが置かれてしまい不格好です…
myBar_Name = "空" Application.CommandBars(myBar_Name).Delete
Set myBar = Application.CommandBars.Add(Name:=myBar_Name, Temporary:=True) Set myButton = myBar.Controls.Add(Type:=msoControlButton) myBar.Visible = True
どのようにしたらよいでしょうか
< 使用 Excel:Excel2010、使用 OS:Windows10 >
パレットを1個にまとめてしまっても良ければ、ですが、 ↓こんな感じの代替案で「それっぽく」見せることはできそうな...
Sub Bar_Add()
Dim myBar As Office.CommandBar Dim myButton As CommandBarButton Dim myBar_Name As String
myBar_Name = "パレット1" On Error Resume Next Application.CommandBars(myBar_Name).Delete On Error GoTo 0
Set myBar = Application.CommandBars.Add(Name:=myBar_Name, Temporary:=True)
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(255,255,255)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(0,0,0)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(230,0,0)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With Rem コメントアウト--------------------------------------------------------- ' myBar.Visible = True ' ' myBar_Name = "パレット2" ' On Error Resume Next ' Application.CommandBars(myBar_Name).Delete ' On Error GoTo 0 ' ' Set myBar = Application.CommandBars.Add(Name:=myBar_Name, Temporary:=True) Rem ----------------------------------------------------------------------- Rem 境界線を追加 ( .BeginGroup の代替として) With myBar.Controls.Add(Type:=msoControlButton) .Caption = "|" .Style = msoButtonCaption .Enabled = False End With Rem ----------------------------------------------------------------------- Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(90, 90, 90)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(80, 80, 80)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
Set myButton = myBar.Controls.Add(Type:=msoControlButton) With myButton .Caption = "RGB(70, 70, 70)" .OnAction = "'Button_Click " & .Caption .FaceId = 59 End With
myBar.Visible = True
End Sub
(白茶) 2021/01/06(水) 12:53
白茶さん ありがとうございます。 位置を調整できるような項目があるのかと、調べておりましたが なかなか見つからなくて…
Captionの表示はさせるけれど、ボタンは見せないのですね。 パレット1つで大丈夫ですので、活用させて頂きます。 (しのみや) 2021/01/06(水) 14:56
> 位置を調整できるような項目があるのかと、調べておりましたが > なかなか見つからなくて…
それはもう「リボン使ってね」ってことでしょうよ。 アドインで実装するなら尚更です。
私も自分用アドインで動的にメニューやらボタンやら作ってたクチなので、 Excel2003から2010に乗り換えた時には、 Office Ribbon Editor(サポート終了した方)使って 専用のリボンタブからコンテキストメニュー等々、頑張って作り直した覚えがあります。
CommandBarほど手軽な作業にはならないでしょうけど これを機に脱却も検討してみては如何でしょうか? と思います
(白茶) 2021/01/06(水) 17:06
情報ありがとうございます。
テキストで書けそうですね。
ただ、私がもうちょっとVBAが落ち着いて使えるようになったからのほうが良さそう…
また時間ができればチャレンジしてみたいと思います。
(しのみや) 2021/01/07(木) 09:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.