In diesem Artikel erfahren Sie, wie Sie in Excel ein Skript hinzufügen, das den Prozess der Verwaltung von Interviewplänen und der Planung von Besprechungen in Teams optimiert. Diese Lösung vereinfacht die Arbeit von Personalvermittlern, indem sie die Erstellung von Teams-Besprechungseinladungen für Kandidaten und Interviewer automatisiert und die Excel-Datei mit der Bestätigung gesendeter Einladungen aktualisiert – alles in einem einzigen Power Automate-Flow.

Office Skript Übungsaufgabe in Excel: Interviews in Teams planen

 

Beschreibung:

Dies ist ein Beispiel, wie Sie mithilfe einer Excel-Tabelle die Zeiten für Vorstellungsgespräche verwalten und Besprechungen in Teams planen können.

Szenario:

In diesem Beispiel sind Sie ein Personalvermittler, der Vorstellungsgespräche mit Kandidaten in Teams plant. Sie verwalten den Interviewplan der Kandidaten in einer Excel-Datei. Sie müssen die Einladung zur Teams-Besprechung sowohl an den Kandidaten als auch an die Interviewer senden. Anschließend müssen Sie die Excel-Datei mit der Bestätigung aktualisieren, dass Teams-Besprechungen gesendet wurden.

Lösungsansatz

Die Lösung besteht aus drei Schritten, die in einem einzigen Power Automate-Flow kombiniert sind.

  1. Ein Skript extrahiert Daten aus einer Tabelle und gibt ein Array von Objekten als JSON-Daten zurück.
  2. Die Daten werden dann an die Teams-Aktion „Teams-Besprechung erstellen“ gesendet, um Einladungen zu senden.
  3. Dieselben JSON-Daten werden an ein anderes Skript gesendet, um den Status der Einladung zu aktualisieren.

Anleitung zum Aufbau:

Step 1: Vorlage

Laden Sie die Datei unten („hr-schedule“) auf Ihr Laufwerk herunter und öffnen Sie dann die Datei.

hr-schedule

Schritt 2: Erstellen eines neuen Skripts

Wählen Sie auf der Registerkarte „Automatisieren“ die Option „Neues Skript“ und fügen Sie das folgende Skript in den Editor ein.

function main(workbook: ExcelScript.Workbook): InterviewInvite[] {
  const MEETING_DURATION = workbook.getWorksheet("Constants").getRange("B1").getValue() as number;
  const MESSAGE_TEMPLATE = workbook.getWorksheet("Constants").getRange("B2").getValue() as string;

  // Get the interview candidate information.
  const sheet = workbook.getWorksheet("Interviews");
  const table = sheet.getTables()[0];
  const dataRows = table.getRangeBetweenHeaderAndTotal().getValues();

  // Convert the table rows into InterviewInvite objects for the flow.
  let invites: InterviewInvite[] = [];
  dataRows.forEach((row) => {
    const inviteSent = row[1] as boolean;
    if (!inviteSent) {
      const startTime = new Date(Math.round(((row[6] as number) - 25569) * 86400 * 1000));
      const finishTime = new Date(startTime.getTime() + MEETING_DURATION * 60 * 1000);
      const candidateName = row[2] as string;
      const interviewerName = row[4] as string;

      invites.push({
        ID: row[0] as string,
        Candidate: candidateName,
        CandidateEmail: row[3] as string,
        Interviewer: row[4] as string,
        InterviewerEmail: row[5] as string,
        StartTime: startTime.toISOString(),
        FinishTime: finishTime.toISOString(),
        Message: generateInviteMessage(MESSAGE_TEMPLATE, candidateName, interviewerName)
      });
    }    
  });

  console.log(JSON.stringify(invites));
  return invites;
}

function generateInviteMessage(
  messageTemplate: string,
   candidate: string,
   interviewer: string) : string {
  return messageTemplate.replace("_Candidate_", candidate).replace("_Interviewer_", interviewer);
}

// The interview invite information.
interface InterviewInvite {
  ID: string
  Candidate: string
  CandidateEmail: string
  Interviewer: string
  InterviewerEmail: string
  StartTime: string
  FinishTime: string
  Message: string
}

Schritt 3: Speichern des Skripts

Speichern Sie das Skript unter dem Namen ‚Schedule Interviews‚.

Schritt 4: Zweites Skript

function main(workbook: ExcelScript.Workbook, invites: InterviewInvite[]) {
  const table = workbook.getWorksheet("Interviews").getTables()[0];

  // Get the ID and Invite Sent columns from the table.
  const idColumn = table.getColumnByName("ID");
  const idRange = idColumn.getRangeBetweenHeaderAndTotal().getValues();
  const inviteSentColumn = table.getColumnByName("Invite Sent?");

  const dataRowCount = idRange.length;

  // Find matching IDs to mark the correct row.
  for (let row = 0; row < dataRowCount; row++){
    let inviteSent = invites.find((invite) => {
      return invite.ID == idRange[row][0] as string;
    });

    if (inviteSent) {
      inviteSentColumn.getRangeBetweenHeaderAndTotal().getCell(row, 0).setValue(true);
      console.log(`Invite for ${inviteSent.Candidate} has been sent.`);
    }
  } 
}

// The interview invite information.
interface InterviewInvite {
  ID: string
  Candidate: string
  CandidateEmail: string
  Interviewer: string
  InterviewerEmail: string
  StartTime: string
  FinishTime: string
  Message: string
}

 

Schritt 5: Speichern des Skripts

Speichern Sie das Skript unter dem Namen ‚Record Sent Invites‚.

Beispielablauf: Führen Sie die Interviewplanungsskripts aus und senden Sie die Teams-Besprechungen

A. Erstellen Sie einen neuen Instant-Cloud-Flow.

B. Wählen Sie „Flow manuell auslösen“ und dann „Erstellen“.

C. Fügen Sie einen neuen Schritt hinzu, der den Excel Online (Business)-Connector und die Aktion „Skript ausführen“ verwendet. Vervollständigen Sie den Connector mit den folgenden Werten.

    1. Location: OneDrive for Business
    2. Document Library: OneDrive
    3. File: hr-interviews.xlsx (Über den Dateibrowser ausgewählt)
    4. Script: Schedule Interviews

D. Fügen Sie einen neuen Schritt hinzu, der die Aktion „Teambesprechung erstellen“ verwendet. Wenn Sie dynamische Inhalte aus dem Excel-Connector auswählen, wird für Ihren Ablauf ein Block „Auf jeden anwenden“ generiert. Vervollständigen Sie den Connector mit den folgenden Werten.

  1. Calendar id: Calendar
  2. Subject: Contoso Interview
  3. MessageMessage (the Excel value)
  4. Time zone: Pacific Standard Time
  5. Start timeStartTime (the Excel value)
  6. End timeFinishTime (the Excel value)
  7. Required attendeesCandidateEmail ; InterviewerEmail (the Excel values)

E. Fügen Sie im selben Block „Auf jeden anwenden“ einen weiteren „Excel Online (Business)“-Connector mit der Aktion „Skript ausführen“ hinzu. Verwenden Sie die folgenden Werte.

  1. Location: OneDrive for Business
  2. Document Library: OneDrive
  3. File: hr-interviews.xlsx (Über den Dateibrowser ausgewählt)
  4. Script: Record Sent Invites
  5. invitesresult (the Excel value)

F. Speichern Sie den Ablauf und probieren Sie ihn aus. Verwenden Sie die Schaltfläche „Testen“ auf der Flow-Editor-Seite oder führen Sie den Flow über die Registerkarte „Meine Flows“ aus. Stellen Sie sicher, dass Sie den Zugriff erlauben, wenn Sie dazu aufgefordert werden.

Prozess:

Personalabteilungen und Personalagenturen können von diesem Projekt stark profitieren. Die Automatisierung des Interviewplanungsprozesses spart Zeit, vermeidet Terminkonflikte und sorgt für einen reibungslosen Kommunikationskanal zwischen Interviewern und Kandidaten. Diese Effizienz kann zu schnelleren Einstellungszyklen und einer positiven Kandidatenerfahrung führen.

 

Benötigen Sie einen VBA 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 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 Makro-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