[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『excel2007リボンの変更はできますか?』(くまんちゅ)
>わかる方教えてください。
「どんな変更ですか?」 それにもよるのですが。
マイクロソフトが用意してくれている方法は結構面倒な手順です。(※)
※その基本的な方法(一般ユーザーが出来る範囲) XMLファイルでリボンの定義を書いて、ブックに添付する。 ブック毎に設定する(いままでのバージョンは、一回作れば他のブックも同じ様に使えた) ブックオープン時にリボンの形状は決定する。(開いた後で、動的に変更することは基本的に出来ない)
リボン自体の変更でなく、リボンの中の「アドイン」タブ内に従来のバージョンと同じ様なツールバーを 入れるのはVBAで出来ると思います。 (これはこれで、VBAを書くのが面倒そうなので、私自身はやったことがありません) (こちらの方法は、動的にも変更できるとは思いますが、なにせ私はやったことがありません (^^ゞ ) (10個くらいのツールボタンなら、クイックアクセスツールバーに登録すれば済んじゃう話とも思っていますので、、)
(半平太) 2009/04/14 09:19
開いた後で、動的に変更することは基本的に出来ない getVisibleやgetEnabled、getImageなどをいじればある程度変更できるのでは?
HNの署名をお願いします。
>getVisibleやgetEnabled、getImageなどをいじればある程度変更できるのでは?
私が言っているのは、それをなんらかの方法で指定するのが一回目の「開く時」です。
一旦、開いたあとで、ブックを開いたままVisibleを変更できないってことです。 ↑ これが出来る方法がありますか?
(半平太) 2009/04/20 09:16
うーん。getVisibleやgetEnabledなどのコールバックを実装しておけば、IRibbonUIオブジェクトのInvalidateメソッドやInvalidateControlメソッドで好きなタイミングで変更できるはずですが??
> ブック毎に設定する(いままでのバージョンは、一回作れば他のブックも同じ様に使えた)
あとコレも。アドインで読み込めばどのBookにでも適用されるはずですが??
(774DQN)
>getVisibleやgetEnabledなどのコールバックを実装しておけば、 >IRibbonUIオブジェクトのInvalidateメソッドやInvalidateControlメソッドで好きなタイミングで変更できるはずですが??
774DQNさん ご回答ありがとうございます。
へー、出来るのですか! うれしいですね。お手数ですがやり方を教えて頂けませんか?
サンプルとして印刷関連のツールボタンを無効にしたり、有効にしたりする場合でお願いします。
(1)XMLマークアップを以下のように書いてみました。
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <commands> <command idMso="FilePrint" getEnabled="ThisWorkbook.PrintShinaiNo1" /> </commands> </customUI>
(2)コールバックは以下のように書いてみました。
<ThisWorkbookモジュール>
Sub PrintShinaiNo1(control As IRibbonControl, ByRef returnedVal) Hentou returnedVal End Sub
Sub Hentou(ByRef rtn) rtn = 12345 = Application.InputBox("印刷関係を有効にする場合はパスワードを入力してください。", , , , , , , 2) End Sub
これで、とりあえず、officeメニューをクリックすると、印刷関係の有効/無効が指定できますが、 それは一回だけで、後でそれを変更したいとき、どうやればいいのか分かりません。
何かトンチンカンなことをやっているのでしょうか? って云うか、IRibbonUIオブジェクトの取得方法そのものが分からないのですが?
(半平太) 2009/04/20 18:05
今2007環境が手元になくて確認してませんが、動作しなかったらすんません。 てゆーか大分スレ汚しちゃったんで自分はコレで消えます。 スレ汚しすみませんでした。
リボンXML:
<customUI onLoad="Initialize" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<commands> <command idMso="FilePrint" getEnabled="PrintShinaiNo1" /> </commands> </customUI>
標準モジュール:
Private MyRibbon As IRibbonUI
Private Flag As Boolean
Sub Initialize(ribbon As IRibbonUI)
Set MyRibbon = ribbon End Sub
Sub PrintShinaiNo1(control As IRibbonControl, ByRef returnedVal)
returnedVal = Flag End Sub
Sub TEST()
Flag = Not Flag Call MyRibbon.Invalidate End Sub
(774DQN)
774DQNさん
ありがとうございます。動作しました!
>大分スレ汚しちゃったんで自分はコレで消えます。 この内容で、スレ汚しってことはないと思います。 私自身はスレ汚しになっていますけどね。(^^ゞ
興味ある人が他にも居ると思いますので、続けていただけるとありがたいです。 (アドインについても伺いたいものです)
無理にはお願いできないので、スルーでも勿論結構です。
(半平太) 2009/04/21 00:37
マジスレ汚しすんません。
>アドインについても伺いたいものです
↑に書いたとおり。そのまんま。 リボンカスタマイズしたファイルをアドイン形式で保存→アドインとして読込→全ファイルにリボン適用。
聞く前にまずググった方がいい。 「2007 カスタマイズ リボン アドイン」とかで検索すればすぐにヒットする。 InvalidateメソッドやInvalidateControlメソッドも「customUI InvalidateControl」なんかで調べりゃすぐに見つかる。 GoogleでダメならYahoo!も使えばいい。
(774DQN)
>書いたとおり。そのまんま。 >リボンカスタマイズしたファイルをアドイン形式で保存→アドインとして読込→全ファイルにリボン適用。 頭が「従前モード」なので、「本当に出来るのかしら?」と思いながらやってみたのですが、ホントに出来た!
> 聞く前にまずググった方がいい。 耳が痛いです。ググった結果が「従前モード」のレベルなんですから、あきれてください。。
これで、2007のリボンカスタマイズの問題については、かなりクリアにすることができました。 ありがとうございました。 って私はスレ主ではないので、勝手に終わらせてはいけなかった。(^^ゞ
(半平太) 2009/04/21 11:34
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.