エクセル の学校
8.一覧 9.HOME
1.Top 2.Last

[[20090414080559]]

[ 初めての方へ | 一覧(最新更新順) |

|
| 全文検索 | 過去ログ | エクセルの学校HOME ]

 

『excel2007リボンの変更はできますか?』(くまんちゅ) excelのリボン内の項目変更をしたいのですが、変更できるのでしょうか? わかる方教えてください。よろしくおねがいします。
 >わかる方教えてください。

 「どんな変更ですか?」 それにもよるのですが。

 マイクロソフトが用意してくれている方法は結構面倒な手順です。(※)

 ※その基本的な方法(一般ユーザーが出来る範囲)
   XMLファイルでリボンの定義を書いて、ブックに添付する。
    ブック毎に設定する(いままでのバージョンは、一回作れば他のブックも同じ様に使えた)
   ブックオープン時にリボンの形状は決定する。(開いた後で、動的に変更することは基本的に出来ない)

 リボン自体の変更でなく、リボンの中の「アドイン」タブ内に従来のバージョンと同じ様なツールバーを
 入れるのはVBAで出来ると思います。
 (これはこれで、VBAを書くのが面倒そうなので、私自身はやったことがありません)
 (こちらの方法は、動的にも変更できるとは思いますが、なにせ私はやったことがありません (^^ゞ )
  (10個くらいのツールボタンなら、クイックアクセスツールバーに登録すれば済んじゃう話とも思っていますので、、)

 (半平太) 2009/04/14 09:19

開いた後で、動的に変更することは基本的に出来ない getVisibleやgetEnabled、getImageなどをいじればある程度変更できるのでは?

 ↑
 HNの署名をお願いします。

 >getVisibleやgetEnabled、getImageなどをいじればある程度変更できるのでは? 

 私が言っているのは、それをなんらかの方法で指定するのが一回目の「開く時」です。

 一旦、開いたあとで、ブックを開いたままVisibleを変更できないってことです。
                 ↑
                これが出来る方法がありますか?

 (半平太) 2009/04/20 09:16

HNの件は失礼しました。

うーん。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

ggrksってトコですが↓みたいな感じでイケると思いますよ。
 今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

質問者不在とかwww
 マジスレ汚しすんません。 

>アドインについても伺いたいものです

 ↑に書いたとおり。そのまんま。 
 リボンカスタマイズしたファイルをアドイン形式で保存→アドインとして読込→全ファイルにリボン適用。 

 聞く前にまずググった方がいい。 
 「2007 カスタマイズ リボン アドイン」とかで検索すればすぐにヒットする。 
 InvalidateメソッドやInvalidateControlメソッドも「customUI InvalidateControl」なんかで調べりゃすぐに見つかる。 
 GoogleでダメならYahoo!も使えばいい。 

(774DQN)


 >書いたとおり。そのまんま。 
 >リボンカスタマイズしたファイルをアドイン形式で保存→アドインとして読込→全ファイルにリボン適用。 
 頭が「従前モード」なので、「本当に出来るのかしら?」と思いながらやってみたのですが、ホントに出来た!

 > 聞く前にまずググった方がいい。 
  耳が痛いです。ググった結果が「従前モード」のレベルなんですから、あきれてください。。

  これで、2007のリボンカスタマイズの問題については、かなりクリアにすることができました。
  ありがとうございました。
  って私はスレ主ではないので、勝手に終わらせてはいけなかった。(^^ゞ

 (半平太) 2009/04/21 11:34




[ 一覧(最新更新順) |

]

キーボードヒント:[Home]または[Fn+Home]キーで一番上へ戻ります

YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.