4

Word 2007 では、[挿入] リボン タブに [表] グループがあり、1 つのドロップダウン ボタン ([表] というラベルが付いています) があります。

ドロップダウンには、「表の挿入...」、「表の描画」などのさまざまなメニュー項目が含まれています。ただし、ドロップダウンの上部には、サイズをすばやく選択するために使用できる 10x8 グリッドがあります。マウスを使用して新しいテーブル。(最初の質問:これは一体何と呼ばれているのですか?!!)。

ユーザーが上記のウィジェットを使用してテーブルを「描画」するときに、テーブル内で使用される段落スタイルを変更できるように、デフォルトの動作をオーバーライドしたいと思います (おそらく他のクリーンアップを行います)。

「テーブルの挿入...」コマンドをオーバーライドする方法は知っていますが、「ウィジェット」の動作をオーバーライドする方法がわかりません。それはできますか?

4

1 に答える 1

3

読み進める前に (これは長くなるため)、私はこの問題を解決していないことを言いたいと思います。しかし、この問題を解決して回避しようとする試みの中で、かなりの数のことを発見しました。他の誰かが解決策を見つけるのに役立つことを願って、ここに記録しています。

表を挿入するために使用できる 10x8 グリッドのコントロールを特定しようとしているときに、「TableInsertGeneral」という名前の Word コマンド内にリストされているマクロを発見しました。

Word マクロ ダイアログ ボックスに表示される TableInsertGeneral

Suzanne S. Barnhill によると、このマクロは、以前のバージョンの Word でこの機能が機能しなくなった場合にグリッドを復元します ( Insert Table Drop Down Missing )。マクロは、Word 2007/2010 に存在するため、マクロ ダイアログ ボックスの [実行] ボタンから実行できません。コマンドをダブルクリックすると、ダイアログ ボックスが閉じますが、他に何も行われません。さらに、TableInsertGeneral という名前の VBA サブを作成して、その機能をインターセプトしようとしましたが、このサブに配置したコードは、グリッドにアクセスしたときに実行されたようには見えませんでした。ただし、私の調査によると、TableInsertGeneral マクロは 10x8 グリッドの表示に何らかの関連があると考えています。

また、Word リボンのテーブル ギャラリーを変更して、この問題を回避しようとしました。グリッドを制御するコードに直接アクセスできなかったため、テーブル ギャラリーを非表示にしてから、グリッド機能を除外した再構築されたギャラリーに置き換えようとしました (これにより、段落スタイルやその他の変更がグローバルに機能するようになりました)。

まず、いくつかのツールをダウンロードしました。

Microsoft Office のカスタム UI エディター (フォルダー構造を作成したり、xml ファイル間の関係を維持したりする必要なく、Word 2007 ドキュメントまたはテンプレート内の customui.xml ファイルを編集できるようにする) を使用して、テンプレートを開き、このコードをファイル内に保存しました。 :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
  <tabs>
    <tab idMso="TabInsert">
      <group idMso="GroupInsertTables" visible="false" />
      <group id="CustomGroupInsertTables" label="Tables" insertBeforeMso="GroupInsertIllustrations">
       <gallery id="CustomTableInsertGallery"
        label="Table"
        imageMso="TableInsertGallery" 
        size="large"
        columns="1" 
        rows="4"
        screentip="Table"
        supertip="Insert or draw a table into the document."
        keytip="T" 
        onAction="RibbonControl.galleryOnAction" >
        <item id="GridMessage" label="Draw Table Via Grid Has Been Removed" imageMso="TablesGallery" 
         supertip="Provides information on why this template has different Ribbon controls."/>  
        <button idMso="TableInsertDialogWord" />
        <button idMso="ConvertTextToTable" />
        <button idMso="TableExcelSpreadsheetInsert" />
       </gallery>
     </group>
    </tab>
  </tabs>
</ribbon>
</customUI>

これにより、元のテーブル ギャラリーが正常に非表示になり、元のテーブル ギャラリーの機能の一部に置き換えられました。10x8 グリッドはなくなりましたが、Draw Table トグル ボタンと Quick Tables ギャラリーを復元できませんでした。私が知る限り、XML スキーマでは、既存のギャラリーにこれらのいずれか (Word 2007 の標準バージョンに存在) を埋め込むことはできません。私は機能を削除するのが好きではないので (この部分的な解決策であっても、採用されるとは思いませんでした)、再構築されたギャラリーの最初の項目として、メッセージ ボックスに関連付けられたボタンを追加しました。

再構築されたテーブル ギャラリー

新しい [Draw Table Via Grid Has Been Removed] ボタンを接続するためのコードは、RibbonControl という名前のモジュールに配置されました。

Sub GalleryOnAction(Control As IRibbonControl, selectedID As String, selectedIndex As Integer)

If Documents.Count = 0 Then
 MsgBox "This control is disabled when there is no active document."
 Exit Sub
End If

Select Case Control.id
  Case "CustomTableInsertGallery"
    Select Case selectedIndex
      Case 0
        MsgBox "Explain changes to Ribbon interface here."
      Case Else
        'Do Nothing
    End Select 
End Select
End Sub

この部分的な解決策を使用する人はいないと思いますが、不足している 2 つのコントロールを復元する手段が得られれば、これは適切な回避策になる可能性があります。ところで、これのほとんどは Greg Maxey の Web サイトから引用しました。

リボンのカスタマイズ

ここまで読んでくれてありがとう!そして、あなた自身の試みであなたがより多くの成功を収めることを願っています。

于 2011-08-14T06:05:24.993 に答える