次の方法で共有

Excel2010-VBA リボン「CommandBars.Add」アイコンの設定

Anonymous
2013-03-24T20:21:29+00:00

次のコードでリボンにユーザー設定タブとボタンの追加まではできているのですが、

アイコンを付与したいのですが非力にてコードが分かりません(XMLではなくVBAで実現したい)。

ご教授宜しくお願い致します。

Option Explicit

Public Const CnsTITLE = "ツールバーテスト"

'終了時自動処理

Private Sub Auto_Close()

    Application.CommandBars(CnsTITLE).Delete  '…ツールバーを削除する

End Sub

'起動時自動処理

Private Sub Auto_Open()

    Dim oBar As CommandBar

    Dim oButton As CommandBarButton

    'ツールバーを追加する

    Set oBar = Application.CommandBars.Add(Name:=CnsTITLE, Position:=msoBarTop)

    '検索ボタンの設定

    Set oButton = oBar.Controls.Add(Type:=msoControlButton)

    oButton.Style = msoButtonCaption            '…ボタンを表示

    oButton.Caption = "検索"                    '…ボタンの表示名を設定

    oButton.TooltipText = "検索を行ないます"    '…ツールチップテキスト

    oButton.OnAction = "検索button"             '…マクロを設定

    oButton.BeginGroup = True                   '…ボタンの境界を設定

    'ツールバーを表示する

    oBar.Visible = True

    'ツールバーを非表示にできなくする

    oBar.Protection = msoBarNoChangeVisible

End Sub

Private Sub 検索button()

    MsgBox "検索buttonがクリックされました"

End Sub

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2013-03-27T00:46:20+00:00

Excel2007以降でツールバーはリボンに置き換えられました。

以前のバージョンのコマンドバーが完全に使えなくならない様にその機能がかろうじて残っているだけなので、コマンドバーではそのような方法はないと思われます。

なので、以下のページを参考に、リボンをカスタマイズして作成する方法を検討した方がいいです。

Excel2010でリボンをカスタマイズする

リボンのカスタイマイズ方法

この回答は役に立ちましたか?

0 件のコメント コメントはありません

4 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-03-26T18:17:11+00:00

    nomboさん、大変お世話になっております。

    課題はExcel2010での事なのですが、

    例えば、[表示]タブの[ブックの表示]グループの様な形式でイメージとテキストを配置したいのですが?

    ご教授宜しくお願い致します。

    以上

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2013-03-25T22:45:20+00:00

    Excel2007以降はコマンドバーはアドインのタブにまとめて表示される様になり、アイコンは3段まで表示され、アイコンは常に同じ高さとなる仕様なのだと思われます。

    なので、2段に表示させるような値「msoButtonIconAndCaptionBelow」などは、正しく表示されません。

    Excel2003までであれば、イメージの下にテキストで表示されます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2013-03-25T11:32:39+00:00

    nomboさん、回答有難うございます。

    早速次のコードに加筆修正してみました…成功です・感謝

    oButton.Style = msoButtonIconAndCaption

    oButton.FaceId = 141

    これをヒントに、Win7(Excel2010-VBA)

    Excelヘルプで「msoButtonIconAndCaption」を検索し次の情報を得ました^^;


    Office 開発者用リファレンス

    MsoButtonStyle 列挙

    コマンド バー ボタンのスタイルを指定します。

    msoButtonAutomatic   0 既定の動作

    msoButtonCaption   2 テキストのみ

    msoButtonIcon   1 イメージのみ

    msoButtonIconAndCaption   3 イメージとテキスト (イメージの右側にテキスト)

    msoButtonIconAndCaptionBelow   11 イメージとテキスト (イメージの下にテキスト)

    msoButtonIconAndWrapCaption   7 イメージとテキスト (テキストはイメージの右側で折り返し表示)

    msoButtonIconAndWrapCaptionBelow   15 イメージとテキスト (テキストはイメージの下で折り返し表示)

    msoButtonWrapCaption   14 テキストのみ (中央揃えで折り返し表示)


    《更なる試み》

    oButton.Style = msoButtonIconAndCaptionBelow   '11 イメージとテキスト (イメージの下にテキスト)

    oButton.FaceId = 141

    を試行したのですが「イメージの下にテキスト」が表示しません…!?

    ご教示宜しくお願い致します。

    以上

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2013-03-24T21:05:57+00:00

    oButton.Styleのプロパティを以下の様に変更、

    oButton.Style = msoButtonIconAndCaption

    以下の1文を追加すればいいです。

    oButton.FaceId = 141

    なお、上記の141の数字は「FaceIdの図について」などを参考にして気に入ったアイコンにして下さい。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません