2

私は2つのことをする必要があります:

  1. Outlook 2013 VBA を使用して、Outlook 2013 リボンの [ホーム] タブのカスタム グループにボタンを追加します。

    • 私がオンラインで見つけたものはすべて、Excel または Word に関するものです。
  2. 各ボタンがクリックされたときに実行されるマクロ内で、クリックされたボタンの名前を認識できるようにしたいと考えています。

    • 「Do 1」、「Do 2」、「Do 3」、...、「Do X」などの可変数のボタンが必要で、それぞれが同じマクロ/サブおよびマクロ/サブ内で実行されますボタンの名前が表示されるので、何をすべきかがわかります。そうしないと、ボタンごとにサブ/マクロを作成する必要があり、それを回避しようとしています。
4

4 に答える 4

1

見つけたと思います!

#1については、これを参照してください: HOW TO:VBAのみでOfficeリボンバーを操作する.

#2では、リボン定義 XML ファイルにonActionサブルーチンを追加する必要があります。

<mso:button id="MyButtonIdentifier1" label="MyMacroLabel" imageMso="HyperlinksVerify" onAction="NameOfMyMacro" visible="true"/>

NameOfMyMacroの定義は次のようになります。

Sub NameOfMyMacro(control As IRibbonControl)
    'here your logic
    Select Case control.Id
        Case "MyButtonIdentifier1"
           'call another subroutine ;)
        Case "MyButtonIdentifier2"
    End Select
End Sub
于 2015-01-06T23:46:15.977 に答える
0

ADODB.Stream を使用して Outlook 2013 にカスタム リボンを追加する方法があります。

私は数年前からこのソリューションを職場で使用していますが、自宅でも適用できませんでした。

まず、XML 構造を含むテキスト ファイルを準備します。

Dim Stream As Object
Dim FSO As FileSystemObject
Dim tsZwischenspeicher As TextStream

Set Stream = CreateObject("ADODB.Stream")
Set FSO = CreateObject("Scripting.FileSystemObject")

strPfad = "C:\Users\" & (Environ("username")) & "\AppData\Local\Microsoft\Office\"
strSpeicherpfad = strPfad & "olkexplorer.officeUI"
strTempSpeicherpfad = strPfad & "olkexplorer.temp"

...

tsZwischenspeicher.WriteLine Anführungszeichen("<mso:customUI xmlns:x1='http://schemas.microsoft.com/office/2009/07/customui/macro' xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>")
tsZwischenspeicher.WriteLine Anführungszeichen("<mso:ribbon>") & vbCrLf
tsZwischenspeicher.WriteLine Anführungszeichen("<mso:qat>")
tsZwischenspeicher.WriteLine Anführungszeichen("<mso:sharedControls>")
tsZwischenspeicher.WriteLine Anführungszeichen("<mso:control idQ='mso:FilePrint' visible='false'/>")

次に、生成された XML ファイルを ADODB.Stream 経由で Outlook に転送できます。

'Eine neue Fußzeile erstellen
tsZwischenspeicher.WriteLine Anführungszeichen("</mso:tabs>")
tsZwischenspeicher.WriteLine Anführungszeichen("</mso:ribbon>")
tsZwischenspeicher.WriteLine Anführungszeichen("</mso:customUI>")

'Zwischengespeicherte Datei schließen
tsZwischenspeicher.Close

Stream.Open
Stream.Type = 2 'text
Stream.Charset = "utf-8"
Stream.LoadFromFile strTempSpeicherpfad
FSO.OpenTextFile(strSpeicherpfad, 2, True, True).Write Stream.ReadText
Stream.Close

Outlook を再起動する必要があり、新しいリボンが表示されます。

于 2018-04-07T10:42:37.733 に答える