Partager via


Exécuter un cote dans votre complément Office lors de l’ouverture du document

Importante

Le runtime partagé n’est pris en charge que dans certaines applications Office. Pour plus d’informations, consultez Ensembles de conditions requises pour le runtime partagé.

Vous pouvez configurer votre complément Office pour charger et exécuter du code dès que le document est ouvert. Cela est utile si vous devez inscrire des gestionnaires d’événements, précharger des données pour le volet Office, synchroniser l’interface utilisateur ou effectuer d’autres tâches avant que le complément ne soit visible.

Remarque

La configuration est implémentée avec une méthode que votre code appelle au moment de l’exécution. Cela signifie que le complément ne s’exécute pas la première fois qu’un utilisateur ouvre le document. Le complément doit être ouvert manuellement pour la première fois sur un document. Une fois la méthode exécutée, soit dans Office.initialize, Office.onReady, soit parce que l’utilisateur prend un chemin de code qui l’exécute ; Ensuite, chaque fois que le document est rouvert, le complément se charge immédiatement et tout code dans la méthode ou Office.onReady s’exécuteOffice.initialize.

Remarque

Cet article nécessite que votre complément Office soit configuré pour utiliser un runtime partagé. Pour plus d’informations, voir Configurer votre complément Office pour utiliser un runtime partagé.

Configurer votre complément pour qu’il se charge à l’ouverture du document

Le code suivant configure votre complément pour qu’il se charge et commence à s’exécuter lorsque le document est ouvert.

Office.addin.setStartupBehavior(Office.StartupBehavior.load);

Remarque

La setStartupBehavior méthode est asynchrone.

Placer le code de démarrage dans Office.initialize ou Office.onReady

Lorsque votre complément est configuré pour être chargé à l’ouverture du document, il s’exécute immédiatement. Le Office.initialize gestionnaire d’événements est appelé. Placez votre code de démarrage dans le gestionnaire d’événements Office.initialize ou Office.onReady .

Le code de complément Excel suivant montre comment inscrire un gestionnaire d’événements pour les événements de modification à partir de la feuille de calcul active. Si vous configurez votre complément pour qu’il soit chargé sur le document ouvert, ce code inscrit le gestionnaire d’événements lors de l’ouverture du document. Vous pouvez gérer les événements de modification avant l’ouverture du volet Office.

// This is called as soon as the document opens.
// Put your startup code here.
Office.initialize = () => {
  // Add the event handler.
  Excel.run(async context => {
    let sheet = context.workbook.worksheets.getActiveWorksheet();
    sheet.onChanged.add(onChange);

    await context.sync();
    console.log("A handler has been registered for the onChanged event.");
  });
};

/**
 * Handle the changed event from the worksheet.
 *
 * @param event The event information from Excel
 */
async function onChange(event) {
    await Excel.run(async (context) => {    
        await context.sync();
        console.log("Change type of event: " + event.changeType);
        console.log("Address of event: " + event.address);
        console.log("Source of event: " + event.source);
  });
}

Le code de complément PowerPoint suivant montre comment inscrire un gestionnaire d’événements pour les événements de modification de sélection à partir du document PowerPoint. Si vous configurez votre complément pour qu’il soit chargé sur le document ouvert, ce code inscrit le gestionnaire d’événements lors de l’ouverture du document. Vous pouvez gérer les événements de modification avant l’ouverture du volet Office.

// This is called as soon as the document opens.
// Put your startup code here.
Office.onReady(info => {
  if (info.host === Office.HostType.PowerPoint) {
    Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, onChange);
    console.log("A handler has been registered for the onChanged event.");
  }
});

/**
 * Handle the changed event from the PowerPoint document.
 *
 * @param event The event information from PowerPoint
 */
async function onChange(event) {
  console.log("Change type of event: " + event.type);
}

Configurer votre complément sans comportement de chargement sur l’ouverture d’un document

Il peut y avoir des scénarios où vous souhaitez désactiver le comportement « Exécuter sur l’ouverture d’un document ». Le code suivant configure votre complément pour qu’il ne démarre pas lorsque le document est ouvert. Au lieu de cela, il démarre lorsque l’utilisateur l’engage d’une certaine manière, par exemple en choisissant un bouton du ruban ou en ouvrant le volet Office. Ce code n’a aucun effet si la méthode n’a pas été appelée précédemment sur le document actif, avec Office.StartupBehavior.load comme paramètre .

Remarque

Si le complément appelle la méthode , avec Office.StartupBehavior.load comme paramètre , dans Office.initialize ou Office.onReady, le comportement est à nouveau activé. Par conséquent, dans ce scénario, sa désactivation s’applique uniquement à la prochaine ouverture du document, et non à toutes les ouvertures suivantes.

Office.addin.setStartupBehavior(Office.StartupBehavior.none);

Obtenir le comportement de chargement actuel

Il peut y avoir des scénarios dans lesquels votre complément doit savoir s’il est configuré pour démarrer automatiquement la prochaine fois que le document actuel est ouvert. Pour déterminer le comportement de démarrage actuel, exécutez la méthode suivante, qui retourne une valeur Office.StartupBehavior .

let behavior = await Office.addin.getStartupBehavior();

Voir aussi