VBAのFaceIdでメニューボタンに独自の図を表示したい

このQ&Aのポイント
  • ExcelのVBAマクロでメニューボタンに独自の図を表示する方法を教えてください。
  • VBAのCommandBars.Addを使用してメニューボタンを作成しましたが、図を表示するためにはFaceIdを使用する必要があります。
  • 図を作成するための具体的な方法や画像の保存場所についてご教示ください。
回答を見る
  • ベストアンサー

VBAのFaceIdでメニューボタンに独自の図を表示したいのですが。

たびたび申し訳ありません。 EXCELのVBAを作成しています。 そのVBAマクロを実行するためのメニューボタンに、自分独自の図を表示したいと思っています。 VBAのCommandBars.Addでメニューボタンの作成までできましたが、 (OKWEBのお陰です。有り難う御座います。) 図を張り付けるため、FaceIdを使って、イメージ図を表示させようと思っています。 適当なFaceId番号をセットすると表示するところまではできますが、自分でどのようにして、その図を作成するのかがわかりません。 できれば、自分用のフォルダにイメージ図を作成して、それをボタン表示したいと思っています。 申し訳ありませんが、ご経験のある方宜しくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.1

ワークシート上に図を作ります。 オートシェイプを使ってデザインしても、ビットマップやJPEGファイルを挿入しても結構です。 ただ、形はボタンに合わせないと自動的にトリミングされます。 こうして作った図を、ボタンに貼り付けることができます。 以下のサンプルは、"zu1" という名前をつけた図を、"テスト"バーのボタンに表示します。 Sub Test()   Dim customBar As CommandBar   Dim newButton As CommandBarButton   Set customBar = CommandBars.Add("テスト")   customBar.Visible = True   Set newButton = customBar.Controls. _      Add(msoControlButton, , , , True)   ActiveSheet.Shapes("zu1").Copy   newButton.PasteFace End Sub ペイントなどのアプリから直接クリップボードにコピーし、それをPasteFaceメソッドで表示させることもできます。

その他の回答 (1)

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.2

No.1です。 >ただ、形はボタンに合わせないと自動的にトリミングされます。 トリミングではなくて、“変形”でした。

関連するQ&A

  • EXCEL VBAでメニュー作成時のメニュー名表示

    EXCEL VBAでサブメニューなしのメニューを下記コードで作成したところ、 メニューにメニュー名"新しいメニュー(&C)"が表示されず、 メニューの領域(表現がいまいちですが..)のみ作成されます。 (EXCEL=2002SP3 OS=WindowsXP Home Edition Ver.2002 SP2) Dim myBar As CommandBarButton Set myBar = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlButton) myBar.Caption = "新しいメニュー(&C)" myBar.OnAction = "マクロ" myBar.Visible = True 作成したメニューで右クリックから"ユーザー設定"画面を表示し内容を見ると、 "名前(N):"には"新しいメニュー(&C)" と設定されているのですが、 "既定のスタイル(U)"にチェックが入っており、これを "テキストのみ表示(T)"にチェックを入れると、メニューに 名前"新しいメニュー(&C)"が表示されます。 作成したメニューの名前の表示方法(VBAから)をご教授ねがいます。

  • VBAのマクロ(フォーム型)をボタンで押して表示する方法

    VBA(エクセル)でマクロを作成しました。メニューバーにマクロボタンを追加する為に、メニューバー右クリック→ユーザ設定→ユーザ設定ボタン(マクロ)をし設定したのですが、設定した端末でエクセルを開くとちゃんとマクロボタンがメニューバーに表示されているのですが、別の端末でファイルを開くとボタンが表示されません。端末毎にマクロボタンを設定しないといけません。マクロボタンをどの端末から開いても表示するように設定する事は可能でしょうか?

  • VBAでメニューバーの一部だけを非表示にしたい

    access2003です。 CommandBars("Menu Bar").Enabled = False これだとメニューバー全てが非表示になってしまいますが 例えば「編集(E)」だけ非表示にしたい場合は どのようなVBAコードを作ればいいのでしょうか? アドバイスよろしくお願い致します。

  • コマンドバーのイメージの設定(エクセルVBA)

    アドインファイルを作ろうと考えてます。その時、アドインファイルに組み込むマクロのイベントをコマンドバーにて行おうと思っています。表示-ツールバー-ユーザー設定で、ツールバーの新規作成を行いユーザー設定のコマンドでコマンドボタンを貼り付けボタンイメージの編集でフェースを変更、マクロの割付を行いました。で、アドインファイルで保存しようと思ったのですが、コマンドバーを一緒に保存って出来るのでしょうか?それとも、Initializeで、一から作成しないと駄目なんでしょうか?その時、ボタンのイメージはどのように設定(同時に、ボタンイメージの編集で作成したイメージの保存)はどのように行えば宜しいのでしょうか? CommandBars、CommandBarControlで、コマンドバーの追加、マクロの割付までは出来るのですが、ヘルプで見ると、Obj.FaceId = 17と使用例がありますが、これだとエクセル標準のイメージしか使えないような気がしますが?ネットで配布されているアドインでは、オリジナルのコマンドーバーのイメージが使われています。どなたか、詳しい方教えて頂けないでしょうか?宜しくお願い致します。

  • Excell2010VBAmacro互換性

    マイクロソフトオフィス2010EXCELマクロについて質問させてください。 VBAマクロでマウス右クリック時にポップアップメニューを出し、 自作マクロを呼び出すようにしました。動作している。 このマクロを別PCのオフィス2013で動作させると、 マクロ内部ではポップアップメニューを作成動作している ようです(デバッグで通っていること確認)ようですが、 EXCEL画面上にはメニューが表示されません。 サンプルマクロは下記参照。 非互換または設定漏れがあるのでしょうか?   サンプルマクロ Sheet1 --------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset '右クリックメニューを初期設定に戻す Call set_RightMenu '右メニュー登録 End Sub Module1 --------------------------------------- Sub reset_RightMenu() ' '右クリックメニューを初期化 ' Application.CommandBars("Cell").Reset End Sub Public Sub set_RightMenu() ' ' 右クリックメニューを設定する ' Call reset_RightMenu '右クリックメニュー初期化 With Application.CommandBars("Cell") _ .Controls.Add() .BeginGroup = True .Caption = "menu0" .FaceId = 682 .OnAction = "menu0" End With With Application.CommandBars("Cell") _ .Controls.Add(Type:=msoControlPopup) .BeginGroup = True .Caption = "SubMenu" With .Controls.Add(Type:=msoControlButton) .Caption = "menu1" .FaceId = 931 .OnAction = "menu1" End With With .Controls.Add(Type:=msoControlButton) .Caption = "menu2" .FaceId = 931 .OnAction = "menu2" End With End With End Sub Sub menu0 MsgBox "****** Menu 0 *******" End Sub Sub menu1 MsgBox "****** Menu 1 *******" End Sub Sub menu2 MsgBox "****** Menu 2 *******" End Sub

  • 「shift」ボタンが押された時。

    Excel2000のVBAをしています。 既に作成しているマクロを「右クリックメニュー」に登録しようと思ってます。その上で二つ質問があります。 処理したい内容(1) 「shift」ボタンが押しっぱなしの時に「右クリックメニュー」に自作コマンドが表示されている様にし、「shift」ボタンが押されてない時は、Excelの通常の「右クリックメニュー」を表示する方法を教えて頂きたいです。 処理したい内容(2) 現在把握している「右クリックメニュー」に登録するソースは、 With Application.CommandBars("CELL").Controls.Add(Before:=1) .Caption = "mymenu(A)" .OnAction = "syori" なんですが、Excelを「改ページプレビュー」にした場合、登録したコマンドが表示されなくなってしまいます。通常でもプレビューでも使用出来るようにしたいので教えて頂きたいと思っています。 複数の質問ですが、よろしくお願いします。

  • メニュー登録のマクロの書き方

    エクセルを開いた時のツールバーで、 「ファイル」を選択すると「新規作成」などのメニューが出ますよね。 その中に「印刷範囲」というメニューがあり、 これにカーソルを合わせると更に右に「印刷範囲の設定」「印刷範囲のクリア」というメニューが出てきます。 この、2階層持つメニューをマクロで作成したいのですが、可能でしょうか。 1階層だけであれば、 Set menu1 = Application.CommandBars("worksheet menu bar"). _ Controls.Add(Type:=msoControlPopup, Temporary:=True) menu1.Caption = "ツールバーに表示させるメニュー名" .Controls.Add Type:=msoControlButton With .Controls(1) .Caption = "メニュー1" .OnAction = "メニュー1のマクロの名前?" End With という記述で実現できました。

  • エクセル2007のVBAについて

    エクセル2007のVBAについて エクセル2003にて、セルの右クリックメニューにコンボボックスを作成するマクロ 「CommandBars("Cell").Controls.Add(Type:=msoControlComboBox)」を使用していましたが、 エクセル2007に変更したところ、使用できなくなりました。 (エラーも出ないかわりに、メニューも追加されません) 他の2台のPCでも試したところ、同じ結果でしたので、環境のせいではない気がします。 (Type:=msoControlComboBox) のプロパティーが、2007では使えなくなったのでしょうか? もしそうなら、代替プロパティーはあるのでしょうか? 考えられる原因等ご存じの方がおられましたら、ご教授いただけませんでしょうか? どうぞ、よろしくお願いいたします。

  • EXCEL VBA:シートの右クリックメニューへの追加方法

    (1)EXCEL VBAで、シートの右クリックメニューへの追加方法が下記の通り、ある本に載っていたので試してみましたが、うまく動作しません。 どこが間違っているか教えて下さい。  Sub シートの右クリックメニュー追加()  With CommandBars("Ply").Controls.Add  .Caption = "AAA(メニューの表示文字)"  .OnAction = "BBB(実行するマクロ名)"  .BeginGroup = True  End With  End Sub (2)上記「シートの右クリックメニュー追加」+BBBマクロをアドインへ組み込み、皆さんへ配布して、右クリックメニューで動作させたいのですが、やり方を教えて下さい。 宜しく、お願いします。

  • VBA アドイン

    今,下記のプログラムを組みメニューバーに登録しユーザフォームを実行させようとしています. Private Sub workbook_addininstall() Dim Menubar As CommandBar Set Menubar = Application.CommandBars.Add(Name:="グラフ作成ツール") With Menubar.Controls.Add(Type:=msoControlButton) '1 .FaceId = 23 .Style = msoButtonIconAndCaption .TooltipText = "グラフ作成ツール" .OnAction = ThisWorkbook.Name & "!UserForm_open" End With Menubar.Visible = True MsgBox "「グラフ作成ツール」ツールバーがインストールされました。", vbOKOnly End Sub 標準モジュールに Sub UseForm_open() graph.Show End Sub として実行させようとすると,下記のようなエラーが返ってきて実行できませんでした. マクロ''グラフ作成ツール.xla'!UserForm'を実行できません。   このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。 どうすれば実行できますでしょうか?ご指導ご鞭撻のほどよろしくお願いいたします.

専門家に質問してみよう