4

この記事 ( http://msdn.microsoft.com/en-us/library/aa338202(v=office.12). aspx

この記事では、次のことを指定しています:-

a) タブに表示する要素を含む customUI.xml という名前の XML ファイルを作成し、同じものを customUI という名前のフォルダーに配置します。

b) Word 2007 ドキュメントの名前を .zip に変更します。上記の「customUI」フォルダをzipファイルに追加します。

c) .zip ファイルの「_rels/rels」ファイルに次の関係を追加します。

<Relationship Type="http://schemas.microsoft.com/office/2006/
  relationships/ui/extensibility" Target="/customUI/customUI.xml" 
  Id="customUIRelID" />

OpenXML SDK を使用して同じことを達成するためのコード サンプルはありますか? たとえば、"RibbonExtensibilityPart" (リボン XML を含む) をドキュメントに追加する方法は?

編集:-

これは私が上記の手順を実行した方法です:-

 string documentFileName = <path of the docx file>;
  string ribbonXml        =  <path of the ribbon XML file>;
 using (WordprocessingDocument myDoc = WordprocessingDocument.Open(documentFileName, true))
 {
   MainDocumentPart mainPart = myDoc.MainDocumentPart;

   if (myDoc.GetPartsCountOfType<RibbonExtensibilityPart>() > 0)
      myDoc.DeletePart(myDoc.GetPartsOfType<RibbonExtensibilityPart>().First());

   RibbonExtensibilityPart ribbonExtensibilityPart = myDoc.AddNewPart<RibbonExtensibilityPart>();
   ribbonExtensibilityPart.CustomUI = new DocumentFormat.OpenXml.Office.CustomUI.CustomUI(File.ReadAllText(ribbonXML));

   myDoc.CreateRelationshipToPart(ribbonExtensibilityPart);
 }

要素が含まれた新しいリボンが表示されます。ただし、リボンにボタンがあり、それらのボタンにハンドル アクションを追加したいと考えています。以下は、私のリボン XML がどのように見えるかです:-

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="CustomTab" label="My Tab">
        <group id="MyGroup" label="My Group" >
          <button id="Button1" label="My Large Button" 
            size="large"/>
          <button id="Button2" label="My Normal Button" 
            size="normal" *onAction="ThisDocument.MyOtherButtonMacro"* />
        </group >
      </tab>
    </tabs>
  </ribbon>
</customUI>

onAction="ThisDocument.MyOtherButtonMacro " を見てください。ドキュメントにマクロ関数を記述できることはわかっています。ただし、カスタム リボンはサーバー側で動的に追加されるため、どのように追加できるかわかりません。マクロを動的に.誰か助けてくれますか?

4

0 に答える 0