In dieser Anleitung werden häufige Probleme aufgeführt, die beim Konvertieren von VBA-Code (Visual Basic for Applications) in Apps Script mit dem Macro Converter auftreten können.
Dateien drucken
VBA-APIs, mit denen Dateien gedruckt werden, werden automatisch in Apps Script konvertiert, verhalten sich aber möglicherweise anders als die ursprüngliche VBA-API. Die folgende Tabelle enthält zwei Beispiele:
| VBA API | Verhalten in Apps Script |
|---|---|
PrintOut | Wird in Apps Script konvertiert, aber die Apps Script API gibt die Ausgabe in eine Datei statt auf einen Drucker aus. Drucken Sie die PDF-Datei manuell. |
PrintToFile | Konvertiert in Apps Script. Die PDF-Datei wird im Ordner „Meine Ablage“ gespeichert. |
Artikel ohne Conversion
Die folgenden Funktionen werden nicht vom Makrokonverter konvertiert und müssen manuell konvertiert werden:
- Einige Arten von Triggern
- Nutzerformulare
- Nicht unterstützte Typen von benannten Bereichen
Trigger
Zwei Arten von Triggern, Tastenkombinationen und einige ereignisbasierte Trigger, werden vom Makro-Konverter nicht konvertiert. In vielen Fällen können Sie diese Trigger manuell erstellen.
Tastenkombinationen
Wenn Sie Tastenkombinationen hinzufügen möchten, folgen Sie der Anleitung zum Importieren von Funktionen als Makros.
Ereignisbasierte Trigger
Einige Ereignisse aus VBA-Code, z. B. BeforeClose oder BeforeSave, haben keine Entsprechungen in Apps Script. Möglicherweise können Sie jedoch eine Problemumgehung erstellen.
Für Ereignisse wie BeforeClose können Sie ein benutzerdefiniertes Menü oder eine Schaltfläche erstellen, auf die geklickt werden muss, um die Aktion auszuführen, die vor dem Schließen der Tabelle stattfinden muss.
Für das Ereignis BeforeSave sind keine Workarounds möglich, da Google Tabellen Änderungen automatisch speichert, sobald Sie sie vornehmen.
Userforms
In VBA ist ein UserForm ein Fenster oder Dialogfeld in der Benutzeroberfläche einer Anwendung. Der Makrokonverter konvertiert keine UserForms. Sie manuell in Apps Script erstellen.
Dialog für Nutzerformular erstellen
- Öffnen Sie die konvertierte Datei auf dem Computer in Google Sheets.
- Klicken Sie oben auf Erweiterungen > ** Apps Script**.
- Klicken Sie links im Editor neben „Dateien“ auf „Datei hinzufügen“ > HTML. Wir empfehlen, der HTML-Datei denselben Namen wie dem ursprünglichen VBA-UserForm zu geben.
- Fügen Sie die Felder und Informationen hinzu, die in Ihrem Formular angezeigt werden sollen. Weitere Informationen zu HTML-Formularen finden Sie auf W3school.com.
- Klicken Sie links auf die Apps Script-Datei (GS-Datei) mit dem konvertierten Code.
- Wenn Sie bereits einen
onOpen-Trigger in Ihrem Code haben, aktualisieren Sie ihn mit dem folgenden Code. Wenn Sie denonOpen-Trigger nicht in Ihrem Code haben, fügen Sie den folgenden Code hinzu.function onOpen() { SpreadsheetApp.getUi() .createMenu('User Form') .addItem('Show Form', 'showForm') .addToUi(); } function showForm() { var html = HtmlService.createHtmlOutputFromFile('userform_module_name') .setWidth(100) .setTitle('Sign-up for Email Updates'); SpreadsheetApp.getUi().showSidebar(html); }
- Ersetzen Sie
userform_module_namedurch den Namen der hinzugefügten HTML-Datei. - Klicken Sie oben auf „Projekt speichern“ .
- Wechseln Sie zur Google-Tabelle und aktualisieren Sie die Seite.
- Klicken Sie oben im Google-Tabellenblatt auf Nutzerformular > Formular anzeigen.
Benannte Bereiche
In Excel sind benannte Bereiche Namen, die einer einzelnen Zelle oder einem Zellenbereich zugewiesen werden.
Wenn Sie Excel-Dateien in Google Sheets konvertieren, werden bestimmte benannte Bereiche nicht konvertiert, da sie nicht unterstützt werden. In der folgenden Tabelle sind einige gängige Beispiele aufgeführt:
| Nicht unterstützte benannte Bereiche | Beschreibung |
|---|---|
| Tabellen | Wird in Google Sheets nicht unterstützt, es gibt aber eine Problemumgehung.
Wenn Sie diesen benannten Bereich in Google Tabellen neu erstellen möchten, fügen Sie einen benannten Bereich hinzu, der auf die A1-Notation des Tabellenbereichs verweist. Verwenden Sie denselben Namen wie für den ursprünglichen benannten Bereich in Ihrem VBA-Code, damit der konvertierte Code ihn erkennt. |
| Liste der Bereiche | Wird in Google Sheets nicht unterstützt. Es gibt keine Umgehungslösung. |
Weitere Informationen
- Übersicht über das Google Workspace-Add-on „Macro Converter“
- Kompatibilität von VBA-Makros prüfen
- VBA-Makros in Apps Script konvertieren
- Fehler im konvertierten Code beheben
- Tutorials zum Makrokonverter ansehen
- Liste der kompatiblen VBA-APIs