Makros ändert die Funktionalität, wenn sie in Word 2016 als Schaltfläche zugewiesen wird

503
theforestecologist

Wenn ich ein SaveAs-Makro in Word 2016 erstelle, funktioniert es anders, wenn ich es einer Befehlsschaltfläche in der Multifunktionsleiste (oder der Symbolleiste für den Schnellzugriff) zuweise.

Makro:

Sub saveAs() Application.FileDialog(msoFileDialogSaveAs).Show  End Sub 

Erwarteter / gewünschter Effekt:

  • Öffnen Sie ein Dialogfeld "Speichern unter".

Was macht es eigentlich :

  • Im VBA-Editor : Es wird wie erwartet ausgeführt und das SaveAs-Fenster geöffnet.

    • Dies gilt unabhängig davon, ob ich auf Run klicke oder F5 (die Run-Verknüpfung) verwende.
  • In der Makroliste (dh nach Auswahl von "View Macros"): Wird erneut ausgeführt, nachdem Sie auf die Schaltfläche "Ausführen" geklickt haben.

  • Als Makrobefehlsschaltfläche : nicht nicht ausführen gewünschte Aktion

    • Wenn die Datei zuvor nicht gespeichert wurde, speichert die Makroschaltfläche die Datei als "Doc1.docx", ohne ein Dialogfeld "SaveAs" zu öffnen.

    • Wenn zuvor eine Datei gespeichert wurde, fungiert die Schaltfläche lediglich als Schaltfläche "Speichern" und speichert den aktuellen Status in der vorhandenen Datei (erneut ohne Öffnen des Dialogfelds).

Meine Frage:

Warum passiert das und was kann ich tun, damit es wie erwartet funktioniert?


Spezifikationen: Word 2016 MSO (16.0.8229.2073) 32-Bit auf einem Windows 7-Computer

Hinweis: Dieser Beitrag ist eine Antwort auf ein Problem, mit dem ich eine Lösung für diese Frage habe .


Aktualisieren:

Ich erlebe den gleichen Effekt, wenn ich Dialogs(wdDialogFileSaveAs).Showoder sogar benutzeDialogs(wdDialogFilePrint).Show.

  • In beiden Fällen tritt der gewünschte Effekt wiederum im VBA-Editor auf, jedoch wirkt eine dem Makro zugewiesene Schaltfläche anders (und unerwünscht).

Update2:

Nach der Aktualisierung auf die aktuellste Version: 16.0.8229.2086 tritt der gleiche Mangel an Funktionalität auf

0
Hinweis: Ich habe ein Dutzend anderer Makros, die * wie erwartet * funktionieren, wenn sie als Ribbon-Schaltfläche zugewiesen werden. (Beispiel: `Selection.Find`-Makros und` Selection.InsertSymbol`-Makros). Es könnte also etwas mit der Art von Aktion zu tun haben, die ich versuche zu tun ??? theforestecologist vor 6 Jahren 0

1 Antwort auf die Frage

0
wizlog

Ich habe das in Ihrer anderen Frage angegebene Problem gelöst, indem Sie einfach das Makro umbenannt haben, sicherstellen, dass es sich im normalen Dokument befindet, und ihm eine Schaltfläche zuweisen.

Hoffe das hilft.