In diesem Artikel zeigen wir Ihnen Best Practices für Office-Skripte. Diese Vorgehensweisen sollen dazu beitragen, dass Ihre Skripte jedes Mal korrekt ausgeführt werden.

Best Practices in Office-Skripten

Hier ist die Liste der Best Practices für die Office-Skripterstellung.

Verwenden Sie den Action Recorder, um neue Funktionen kennenzulernen

Excel macht viele Dinge. Die meisten davon sind programmierbar. Der Action Recorder erfasst Ihre Excel-Aktionen und wandelt sie in Code um. Dies ist die einfachste Methode, um zu lernen, wie verschiedene Funktionen mithilfe von Office-Skripts funktionieren. Wenn Sie Code für eine bestimmte Aktion benötigen, gehen Sie zum Aktionsrekorder, führen Sie die Aktionen aus, wählen Sie dann „Als Code kopieren“ und fügen Sie den Code in Ihr Skript ein.

Verwenden Sie den Action Recorder, um neue Funktionen kennenzulernen

 

Hinweis: Seien Sie vorsichtig, wenn Sie Skripte mit dem Action Recorder teilen, da einige APIs möglicherweise nicht allgemein unterstützt werden.

Überprüfen Sie zuerst ob ein Objekt existiert

Skripte basieren häufig darauf, dass ein bestimmtes Arbeitsblatt oder eine bestimmte Tabelle in der Arbeitsmappe vorhanden ist. Sie können jedoch zwischen den Skriptausführungen umbenannt oder entfernt werden. Sie können sicherstellen, dass das Skript nicht abrupt endet, indem Sie zunächst prüfen, ob bestimmte Tabellen oder Arbeitsblätter vorhanden sind, bevor Sie deren Methoden aufrufen.

Der folgende Beispielcode bestimmt, ob das Arbeitsblatt „Index“ in der Arbeitsmappe vorhanden ist. Wenn das Arbeitsblatt vorhanden ist, ruft das Skript den Bereich ab und fährt fort. Wenn es nicht vorhanden ist, generiert das Skript eine benutzerdefinierte Fehlermeldung.

// Stellen Sie sicher, dass das Arbeitsblatt "Index" vorhanden ist, bevor Sie es verwenden.
let indexSheet = workbook.getWorksheet('Index');
if (indexSheet) {
  let range = indexSheet.getRange("A1");
  // Setzen Sie die Arbeit mit dem Bereich fort...
} else {
  console.log("Index-Arbeitsblatt nicht gefunden.");
}

Überprüfen Sie den Daten- und Arbeitsmappenstatus

Bevor Sie mit der Arbeit mit den Daten beginnen, stellen Sie sicher, dass Sie über alle Arbeitsblätter, Tabellen, Formen und anderen Objekte verfügen. Stellen Sie mit der vorherigen Methode sicher, dass alles in der Arbeitsmappe Ihren Erwartungen entspricht. Wenn Sie dies tun, bevor Sie Daten eingeben, stellen Sie sicher, dass Ihr Skript die Arbeitsmappe nicht in einem unvollständigen Zustand hinterlässt.

Das folgende Skript erfordert zwei Tabellen, „Table1“ und „Table2“. Das Skript prüft zunächst, ob die Tabellen vorhanden sind. Ist dies nicht der Fall, kehrt es mit einer entsprechenden Warnung zurück.

function main(workbook: ExcelScript.Workbook) {
  // Diese Tabellen müssen im Arbeitsbuch für das Skript vorhanden sein.
  const TargetTableName = 'Tabelle1';
  const SourceTableName = 'Tabelle2';

  // Holen Sie die Tabellenobjekte.
  let targetTable = workbook.getTable(TargetTableName);
  let sourceTable = workbook.getTable(SourceTableName);

  // Überprüfen Sie, ob die Tabellen vorhanden sind.
  if (!targetTable || !sourceTable) {
    console.log(`Erforderliche Tabellen fehlen - Überprüfen Sie, ob sowohl die Quell- (${TargetTableName}) als auch die Ziel- (${SourceTableName}) Tabellen vorhanden sind, bevor Sie das Skript ausführen.`);
    return;
  }

  // Weiter...
}

Wenn die Überprüfung in einer separaten Funktion erfolgt, müssen Sie das Skript dennoch beenden, indem Sie die Return-Anweisung der Hauptfunktion ausgeben. Durch die Rückkehr von der Unterfunktion wird das Skript nicht beendet.

Das folgende Skript verhält sich genauso wie das vorherige. Der Unterschied besteht darin, dass die Hauptfunktion die Funktion inputPresent aufruft, um alles zu überprüfen. inputPresent gibt einen booleschen Wert (wahr oder falsch) zurück, um anzugeben, ob alle erforderlichen Eingaben vorhanden sind. Die Hauptfunktion verwendet diesen booleschen Wert, um zu entscheiden, ob das Skript fortgesetzt oder beendet werden soll.

function main(workbook: ExcelScript.Workbook) {

  // Get the table objects.
  if (!inputPresent(workbook)) {
    return;
  }

  // Continue...
}

function inputPresent(workbook: ExcelScript.Workbook): boolean {
  // Diese Tabellen müssen im Arbeitsbuch für das Skript vorhanden sein.
  const TargetTableName = 'Tabelle1';
  const SourceTableName = 'Tabelle2';

  // Holen Sie die Tabellenobjekte.
  let targetTable = workbook.getTable(TargetTableName);
  let sourceTable = workbook.getTable(SourceTableName);

  // Überprüfen Sie, ob die Tabellen vorhanden sind.
  if (!targetTable || !sourceTable) {
    console.log(`Erforderliche Tabellen fehlen - Überprüfen Sie, ob sowohl die Quell- (${TargetTableName}) als auch die Ziel- (${SourceTableName}) Tabellen vorhanden sind, bevor Sie das Skript ausführen.`);
    return false;
  }

  return true;
}

Try und Catch Anweisung

Die try…catch-Anweisung wird verwendet, um zu erkennen, wenn ein API-Aufruf fehlschlägt, und um dann mit der Ausführung des Skripts fortzufahren.

Betrachten Sie den folgenden Ausschnitt, der eine umfangreiche Datenaktualisierung für einen Bereich durchführt.

range.setValues(someLargeValues);

Wenn „someLargeValues“ größer ist, als Excel im Web verwalten kann, schlägt die Methode „setValues()“ fehl. Das Skript wird dann mit einem Laufzeitfehler beendet. Die try…catch-Anweisung ermöglicht es Ihrem Skript, dieses Szenario zu erkennen, ohne das Skript sofort zu beenden und den Standardfehler anzuzeigen.

Eine Möglichkeit, die Erfahrung des Skriptbenutzers zu verbessern, besteht darin, eine benutzerdefinierte Fehlermeldung anzuzeigen. Der folgende Codeausschnitt demonstriert eine try…catch-Anweisung, die zusätzliche Fehlerinformationen protokolliert, um den Leser zu unterstützen.

try {
    range.setValues(someLargeValues);
} catch (error) {
    console.log(`Das Skript konnte die Werte am Standort ${range.getAddress()} nicht aktualisieren. Bitte überprüfen und erneut ausführen.`);
    console.log(error);
    return; // Beenden Sie das Skript (angenommen, dies befindet sich in der Hauptfunktion).
}

Ein weiterer Ansatz zum Umgang mit Fehlern besteht darin, über ein Fallback-Verhalten zu verfügen, das den Fehlerfall behandelt. Das folgende Snippet verwendet den Catch-Block, um eine alternative Methode auszuprobieren, um das Update in kleinere Teile aufzuteilen und den Fehler zu vermeiden.

try {
    range.setValues(someLargeValues);
} catch (error) {
    console.log(`Das Skript konnte die Werte am Standort ${range.getAddress()} nicht aktualisieren. Versuche einen anderen Ansatz.`);
    handleUpdatesInSmallerBatches(someLargeValues);
}

// Weiter...
}

 

Fazit

In diesem Artikel haben wir Ihnen die besten Office-Skriptpraktiken gezeigt. exact construct empfiehlt dringend, diese Strategien in Ihre Skripte zu integrieren, da sie eine nahtlose, fehlerfreie Automatisierung ermöglichen.

 

Benötigen Sie einen Microsoft 365-Programmierer?

Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes sowie generell Microsoft-Produkte ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen