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