• 締切済み

添付されているツールバーの名前を知りたい(Excel2000 VBA)

ブックに自作のツールバーを添付して配布しています。 その、添付されているツールバーの名前を取得できるコードを書きたいのですが、どのように書けばいいのか皆目見当が付きません。 うまく検索もできませんでしたので、どなたかご存知のかた教えてくださいませ。 WindowsXPとエクセル2000を使っています。 よろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。Wendy02です。 >Wendy02さんのご見解では、 >「添付したツールバーの名前を取得できるコードは存在しない」 揚げ足を取るわけではありませんが、私は、「見解(Opinion)」を述べているのではないのです。実際のことを言っているだけです。 既存のCommandBarの次のIndex数が、「ユーザー設定」のツールバーだと言っても、それが、自分のものとは分らないでしょう? >ツールバーの添付方法・ツールバーの削除コード・マナーなどは存じております。 そこまで知っていて、なぜ、そういうことをお聞きなるのか、私には、良く分らないです。 >ツールバーの名前を変数に設定 余計に分らないです。 単に、それを使えばよいことでは? ご自分で備えつけ、名前をつけたツールバーを、自分が取れないということはありえないし、メインテナンスは、自分の書いたコードを基に行うのであって、他人のコードや新たに作るわけではないでしょう? ふつう、CommandBarControl には、Tag をつけるという習慣はあるけれども、ツールバーに、識別符号などをつけることは聞いたことがないです。 以下で、試してみればわかるはずです。特定化はできないのは、自分のものは、自分しか知らないからです。BuitIn属性のFalseが、ユーザー設定の意味です。 Sub UsersCommandBarsShow() Dim cb As Object Dim cbNames As String  For Each cb In Application.CommandBars   If cb.BuiltIn = False Then   cbNames = cbNames & vbCrLf & cb.Name   End If  Next  MsgBox cbNames End Sub

double12345
質問者

お礼

再びどうもありがとうございます。 「見解」と申し上げたお気を悪くされてしまいましたようで、大変申し訳ありませんでした。 質問内容とは全く関係ありませんでしたので書きませんでしたが、 クライアントからの希望で、常駐させて使う(自作の)ツールバーを、クリック1回で各パソコンにインストールできるブックを作成しております。 機能の更新もワンクリックでできるようになっています。 今後もボタンや機能を増やす予定で、私以外の者がメンテナンスやカスタマイズを引き継ぐ可能性も大きいですので、できるだけ簡便に修正できることがとても重要なのです。 また、パソコンがあまり使えない人でも簡単に高度な機能を使えるようにするために、自作のツールバーを削除せずに常駐させるようにとも指示が出ているのです。 まだVBAに不慣れなため、見当違いの質問となってしまいましたが、丁寧にお答えいただきまして感謝しております。 Indexというプロパティがあるというのも、今回教えていただいて初めて知りました。 取得できないということで、次善策を考えることにいたします。どうもありがとうございました。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 通常、ツールバーの添付の場合は、ブックに添付すれば、相手側のツールバーに組み込まれますので、それ自体は問題ありません。 ツール-ユーザー設定-ツールバー添付 ブックへツールバーを登録 コピー(C)>> をクリック それで、本題ですが、 通常、そこに出て来た名前、 例えば、 「Custom」 とあれば、 Sub Auto_Close()  On Error Resume Next  Application.CommandBars("Custom").Delete  On Error GoTo 0  End Sub として、ユーザーツールバーを削除してあげるのが、マナーだとされています。かなり、マクロが得意な人でも、こういうマナーを忘れる方がいます。 また、Application.CommandBars("Custom").Visuble =False は使いません。 マクロで登録したものは、Temporay プロパティの設定をするので、こういう必要はありませんし、マクロでは通常は、ツールバー自体を設けることは少ないです。組み込み型のメニューをヘルプの右隣などに入れます。 なお、ブックの配布形式では、ユーザー設定のコマンドバーをマクロで探すことは、おそらくは特定は不可能だと思います。時々、Index を使ったりする人がいますが、もってのほかです。マクロでは、自分で取り付けて、自分で外すというのが原則です。 もし、これでご不明なら、コードを出してください。

double12345
質問者

お礼

早速のアドバイスどうもありがとうございます。 ツールバーの添付方法・ツールバーの削除コード・マナーなどは存じております。 現在は添付したツールバーの名前を変数に設定しているのですが、今後のメンテナンスをできる限り楽にするために、自動で取得できる方法を探しています。 Wendy02さんのご見解では、 「添付したツールバーの名前を取得できるコードは存在しない」 ということでよろしいでしょうか?

すると、全ての回答が全文表示されます。

専門家に質問してみよう