VBAからGDI+を使う資料集
inet上の達人の方々から御教示いただいたコードを少しアレンジさせてもらっています(切り貼りとも言います)。
  1. ホーム
  2. ribbon
  3. customui


リボンカスタマイズ用XML

customUI.xml

MSの、「2007 Office Fluent リボンをカスタマイズする (開発者向け) (パート 1/3)」という記事にある、
Word用のサンプルをExcelに載せ替えてみました。
http://msdn.microsoft.com/ja-jp/library/aa338202.aspx
また、右クリックメニュー(コンテキストメニュー)のカスタマイズも、他のサイトを参考に盛り込んでみました。
http://homepage2.nifty.com/suyamsoft/Ribbon/Excel2010/ContextMenu/index.html

なお、検索してみつかった、参考になるサイトの双璧は次のURLになります。
http://homepage2.nifty.com/suyamsoft/Ribbon/index.html
http://www.ka-net.org/ribbon/ri01.html

<?xml version="1.0" encoding="utf-8"?>
<!-- customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" -->
<!-- onLoadを記述しないとリボンロード時のイベントが働かない -->
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="OnLoad">
<!-- customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" -->
  <ribbon  startFromScratch="false">
    <tabs>
      <tab id="CustomTab" label="My Tab">
        <group id="SampleGroup" label="Sample Group">
          <!-- ここでコントロールのIDを設定している -->
          <toggleButton id="ToggleButton1" size="large" 
            getLabel="ToggleButton1_getLabel" 
            getPressed="ToggleButton1_getPressed"
            onAction="ToggleButton1_click"  />
          <checkBox id="CheckBox1" label="A CheckBox" 
            screentip="This is a check box" 
            onAction="CheckBox1_click" />
          <editBox id="EditBox1" getText="EditBox1_getText" 
            label="My EditBox" onChange="EditBox1_change"/>
          <comboBox id="Combo1" label="My ComboBox" 
            onChange="Combo1_change">
            <item id="Zip1" label="33455" />
            <item id="Zip2" label="81611" />
            <item id="Zip3" label="31561" />
          </comboBox>
          <dialogBoxLauncher>
            <button id="Launcher1" screentip="My Launcher" 
              onAction="Launcher1_click" />
          </dialogBoxLauncher>
        </group>
        <group id="MyGroup" label="My Group" >
          <button id="Button1" imageMso="TableEffectsCellBevelGallery" label="My Large Button" size="large" onAction="Button1_click" />
          <button id="Button2" imageMso="ObjectEffectGlowGallery" label="My Normal Button" size="normal" onAction="Button2_click" />
        </group >
      </tab>
    </tabs>
  </ribbon>

<contextMenus>
<contextMenu idMso="ContextMenuCell">
  <button id="DateButton" label="Date" imageMso="OmsChangeSlideLayoutGallery" getEnabled="GetEnabled"  getVisible="GetVisible"  onAction="Button_Click" />
  <button id="TimeButton" label="Time" imageMso="StartAfterPrevious" getEnabled="GetEnabled"  getVisible="GetVisible" onAction="Button_Click" />
  <menuSeparator id="menuSeparator1" />
  <menu id="Menu1" label="Attribute" >
    <checkBox id="VisibleCheckBox" getPressed="CheckBox_GetPressed" label="Visible" onAction="CheckBox_Click" />
    <checkBox id="EnableCheckBox" getPressed="CheckBox_GetPressed" label="Enable" onAction="CheckBox_Click" />
  </menu>
 <gallery id="gallery1" label="Gallery" onAction="Gallery_OnClick">
   <item id="HappyFaceItem" imageMso="HappyFace" />
   <item id="SadFaceItem" imageMso="SadFace" />
   <item id="PiggyItem" imageMso="Piggy" />
   <item id="FoxItem" imageMso="MicrosoftVisualFoxPro" />
 </gallery>
 </contextMenu>
 <contextMenu idMso="ContextMenuColumn">
  <button id="ColumnCountButton" label="Select Column Count" onAction="Button_Click" />
 </contextMenu>
 <contextMenu idMso="ContextMenuRow">
   <button id="RowCountButton" label="Select Row Count" onAction="Button_Click" />
 </contextMenu>
</contextMenus>
</customUI>