0

インターネットで見つけた下部のコードを使用して、Word 2013 の右クリック メニューにコマンドを追加していました。私はそれを使用したので、それをよりよく理解したいと思っていました.誰かが私にいくつかのパラメータを説明してくれませんか. もっとよく理解したいので、もう一度実行してコマンドを追加したい場合。Microsoft の公式ヘルプ リファレンスは、私を混乱させるだけです。

どのように機能しBefore:=30ますか?最初は、右クリック メニューの上部から単純にカウントダウンされるだけだと思っていましたが、これを実行すると、コマンドが間違った場所に配置されてしまいました。常に表示されないコマンドをカウントしているに違いないと思います。

Tag:="Save".Tag = "Save"同じで、それらは何ですか。とは.Caption? 上記の 3 つのパラメーターは非常に似ているようです。

Sub EditRightClickMenu()
'
'
'
   Dim cb As CommandBar
    Dim ctl As CommandBarButton
    On Error GoTo bye

    CustomizationContext = NormalTemplate
    Set cb = CommandBars("Text")
    Set ctl = cb.FindControl(Tag:="Save")
    If ctl Is Nothing Then
        Set ctl = cb.Controls.Add(Type:=msoControlButton, _
            Before:=30, Temporary:=True)

        With ctl
            .Caption = "Save"
            .Tag = "Save"
            .FaceId = 3
            .BeginGroup = True
            .OnAction = "MySave"
        End With
    End If

bye:

End Sub
4

1 に答える 1

0

これBefore:=30は実際に、新しいコントロールを挿入する前のメニューのコマンドです。コードから行 line を削除On Error GoTo byeして通常のワード インストールで実行すると、行を設定しようとするとエラーが発生します。

Set ctl = cb.Controls.Add(Type:=msoControlButton, _
        Before:=30, Temporary:=True)

これは、デフォルトのテキスト右クリック メニューに 30 個のコントロールがないためです。5 に変更すると、問題なく動作します。

Tag:="Save".Tag="Save"若干異なります。このTag:=表記法は、メソッドへの変数入力を指定するときに使用されます。この場合、Tagの関数への入力ですFindControl。エディターで選択するときにキーボードの Shift+F2 を押すFindControlと、メソッドの定義とすべての変数が表示されます。.Tag表記はオブジェクトのプロパティを参照します。この場合、マクロが再度実行された場合に見つかるようTagに設定されています。"Save"

最終的に.Captionは、作成されたメニュー コントロールに表示される単なるテキストです。

于 2013-07-25T07:04:28.490 に答える