アドインで追加したツールバーのコマンドボタンの制限方法について

このQ&Aのポイント
  • ExcelのVBAで作成したプログラムにアドインで追加したツールバーのコマンドボタンをユーザーが修正や削除することを制限する方法について教えてください。
  • フリーソフトなどを見ると、コマンドボタンが変更されても再立ち上げすると元の状態に戻るようですが、それを実現する方法を知りたいです。
  • 配布やメンテナンスを考慮して、障害の可能性を最小限に抑えたいので、経験のある方にアドバイスをお願いします。
回答を見る
  • ベストアンサー

アドインで追加したツールバーのコマンドボタンを消せなくするには。

経験あるかた宜しくお願い致します。 excelのVBAでプログラム作りまして、ツールバーへ新たにコマンドボタンを追加してマクロ登録しました。 これをアドインで機能追加を行い使うようにしています。 だた、ユーザーが使用中にコマンドボタンの修正・削除を行うことが可能となっています。 フリーソフトなどを見ますと、ボタンの変更がされても、再立ち上げすると元の状態に戻っているようです。 変更・削除は可能としても、再立ち上げで、もとのメニューコマンドの状態にしたく思っています。 ユーザー配布や後々のメンテを考えると、できるだけ障害に成り得る事象は、解消しておきたいと思っています。 ご経験のある方いらっしゃれば宜しくお願い致します。

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

  • ベストアンサー
noname#102878
noname#102878
回答No.1

そのコマンドバーは手作業で作成して回ったのですか?・・・(^_^;; VBAが書けるのならCommandBarもVBAで作れますよ。 私が作ったxlaファイルのサンプルです。 xlaファイルのThisWorkbookモジュールに記述します。 ただし、見易さを考慮して各行先頭の空白は全角スペースにしています。 ポイントは以下の2点。 ・コマンドバーを作成するときに「Temporary:=True」を指定する。 これにより、コマンドバーがユーザーのPCに作成されず、Excelを閉じると削除されます。 ・ThisWorkbookを閉じるときにコマンドバーを削除する。 これによりアドインのチェックを外した瞬間にコマンドバーも削除されます。 ----------------------------------- Option Explicit Private Const cmstrBAR_NAME As String = "テストバー" ' *********************************************** ' ブック起動 コマンドバーを作成する。 ' *********************************************** Private Sub Workbook_Open()   Dim myCmdBar As CommandBar   Dim myCmdBarBtn As CommandBarButton   If CmdBarExis = False Then     Set myCmdBar = Application.CommandBars.Add(Name:=cmstrBAR_NAME, Temporary:=True)     Set myCmdBarBtn = myCmdBar.Controls.Add(Type:=msoControlButton)     With myCmdBarBtn       .Caption = "入力"       .DescriptionText = "入力用フォームを表示する"       .TooltipText = "入力用フォームを表示します"       .Style = msoButtonCaption       .OnAction = "ShowEntryForm"     End With     Set myCmdBarBtn = myCmdBar.Controls.Add(Type:=msoControlButton)     With myCmdBarBtn       .Caption = "集計"       .DescriptionText = "月度集計を開始する"       .TooltipText = "今月の集計を開始します"       .Style = msoButtonCaption       .OnAction = "LetCalc"     End With     myCmdBar.Visible = True     Set myCmdBarBtn = Nothing     Set myCmdBar = Nothing   End If End Sub ' *********************************************** ' ブックを閉じる コマンドバーを削除する ' *********************************************** Private Sub Workbook_BeforeClose(Cancel As Boolean)   If CmdBarExis = True Then     Application.CommandBars(cmstrBAR_NAME).Delete   End If End Sub ' *********************************************** ' ブック アクティブ時 コマンドバーを表示する ' *********************************************** Private Sub Workbook_Activate()   If CmdBarExis = True Then     Application.CommandBars(cmstrBAR_NAME).Enabled = True     Application.CommandBars(cmstrBAR_NAME).Visible = True End If End Sub ' *********************************************** ' コマンドバーを隠す ' *********************************************** Private Sub Workbook_Deactivate()   If CmdBarExis = True Then     Application.CommandBars(cmstrBAR_NAME).Enabled = False     Application.CommandBars(cmstrBAR_NAME).Visible = False   End If End Sub ' *********************************************** ' このアドインで作成したCommandBarがすでに ' 存在するかチェックする。 ' 戻り: 存在する = True, 存在しない = False ' *********************************************** Private Function CmdBarExis() As Boolean   Dim Bar As CommandBar   For Each Bar In Application.CommandBars     If Bar.Name = cmstrBAR_NAME Then       CmdBarExis = True       Exit Function     End If   Next Bar End Function -----------------------------------

tosi0000
質問者

お礼

有り難う御座います。 早速試したいと思います。

tosi0000
質問者

補足

テストしました。 goodです。 補足ですが、ボタンにイメージ図を表示させようと思っています。FaceIdを使うつもりですが、ちょっと行き詰まって再度OKWEBに質問を出しました。 有り難う御座いました。

関連するQ&A

  • WORD_ツールバーに独自のコマンドボタンを追加

    WORDを使用していて、割に印刷範囲が「現在のページ」を使うことがあるのでツールバーにボタンを追加したいのですが、ユーザー設定のコマンドの中に「現在のページを印刷」らしきものが見当たりません。 独自に「現在のページを印刷」できるコマンドボタンの作り方をご存じの方は是非とも教えてください。

  • IEのツールバーにボタンを追加

    http://nacelle.info/customize/08014.php を参考にレジストリを編集してボタンを追加することが出来ました。 でも、そのままでは表示されず「ユーザー設定」で追加したボタンを指定してあげる必要がありました。(もちろんIEは再立ち上げ) IEのツールバーにボタンを追加するプログラムを作りたいのですが、登録したボタンを自動で表示させる方法は無いものでしょうか。

    • 締切済み
    • CSS
  • ユーザ-設定のコマンドの削除・追加が使えなくなった。

    こんにちは。 はじめて質問させて頂きます。 Win2000・EXCEL2000を使用していますが、先日、修理をした際に再インストールをしたのですが、業者の人に「今のツールバーの設定を残しておくことはできませんか?」とお願いしたところ、それ以降ツールバーのコマンドの追加・削除等が全くできなくなりました。コマンドボタンへのマクロの再登録ももちろんできません。いったんは追加・削除等できるのですが、設定が反映されないので、新たに立ち上げるとまた前の状態のままです。ツールバーのリセットをやればまたユーザー設定(コマンド)が反映されるようになるのでしょうか?リセットをしてツールバーが初期の状態になって、今のようにコマンドの追加・削除等ができないままだと今以上に使いづらいので、リセットをためらっています。 この状態をぬけれる方法がありましたら是非教えて下さい。宜しく御願いいたします。

  • ツールバーのコマンド復元!

    いつもお世話になります。 [ユーザー設定]で[ツールバー]を選択後、[コマンド]でツールの追加・削除をし 使い勝手を良くしますよね。 一度削除してしまったコマンドは、初期化しても[ツールーバー]からは除かれて しまっています。これを元に戻す方法を教えて下さい! 具体例を挙げますと[図形描写]にある[図形の調整]を除いて使用していました。 やっぱり[図形の調整]もツールバーに加えよう!と思い、[図形描写]の 表示・非表示を設定しましたが[図形の設定]を除いたものしか、バーには表示 されません(;_;) [コマンド]より設定するのではなく、各[ツールバー]を初期状態に戻す方法を 教えて下さい。 ちなみに、[ユーザー設定]→[オプション]で『初期状態に戻す』や [ユーザー設定]→[ツールバー]で『リセット』をしても私が求めている 状態にはなりませんでした。

  • Microsoft Word 2003のツールバーにコマンド追加ができません。

    WindowsXpでMicrosoftWord 2003を使用しています。メニュー→ツール→ユーザー設定→コマンドから上付き文字などのコマンドをツールバーに追加する際、そのときは追加出来ても、一度Wordを終了してしまうと、ツールバーの変更が記憶されず、元に戻ってしまいます。知人に”Normal.dot"というファイルを一度ゴミ箱に捨てたらよいといわれましたが、検索してもNormal.dotというファイルが見つかりません。解決法を御存知の方が居られましたら、お教え下さい。よろしくお願い申し上げます。

  • アドインファイルの作り方

    マクロを作成して、人に配ろうかと考えています。ツールバーにコマンド追加してマクロを登録しました。ユーザー設定で、ツールバーの添付で保存(xls)して、別にアドインファイル(xla)で保存しました。別のパソコンにアドインすると、Personal.xlsにマクロが見つかりません。って出てきます。自分のパソコンにもどって、アドインし、コマンドを実行すると、元のxlsファイルが自動的に読み込まれて、実行できてしまいます。ユーザー設定を開きマクロの登録を見てみると、元のxlsファイルが関連付けられてしまっています。(因みに、マクロは、Private としています。 どうにか?アドインファイルだけで完結したいのですが、どのようにすればいいのでしょうか?教えてください。宜しくお願い致します。

  • WORD2007のリボンにコマンドを追加したい

    WORD2007を使い始めました。 始めたばかりのため、質問上各バーの名称がちがっていたらすいません。 以前のバージョンまでは、使いたいコマンドボタンをユーザー設定のようなダイアログボックスからドラッグをして追加していました。 この操作を、WORD2007のグループごとのリボンの場所にユーザー設定でコマンド追加はできますか? WORDのオプションのユーザー設定を開いたのですが、[クイックアクセスツールバー]には追加&削除できるようでしたが、各グループごとへの追加方法がみつかりませんでした。 ほか、WORD2007を急きょ利用しなければいけなくなり、数点質問させていただいてます。 よろしくお願いします

  • Excelのコマンドボタンに、ツールバーに既存の機能を定義したい

    Excelのユーザフォームに定義したコマンドボタン押下で、ツールバーにあるオートシェイプの直線ボタン押下状態にしたいのです。すなわち、コマンドボタンで直線を描線できる状態にしたいのです。 どうすればよいでしょうか? ご教授ください。泪

  • 自作Excelアドインの登録/削除コマンド

    こんばんは。 ExcelアドインをVisualStudio2015で自作しました。 VisualStudio2015が自動で登録してくれるようでデバッグ実行では何もしなくてもExcelに自作アドインが表示されます。 これを配布する場合にバッチコマンドで登録/削除したいのですが、コマンドが分かりません。 自作Excelアドインの登録/削除コマンドはあるのでしようか? Excelの開発タブを有効にして行う方法は使用者に手間が増えてしまうので使用したくありません。 よろしくお願いいたします。

  • Thunderbirdで追加したアドインを削除する方法

    掲題の通り、 「Thunderbirdで追加したアドインを削除する方法」 Thunderbirdで追加したアドインを削除したいのですが、方法がわかりません。ご存知の方、申し訳ありませんがご教示お願い致します。 削除したいアドインは、webmailのアドインです。

専門家に質問してみよう