Compartilhar via


Execute o código em seu Suplemento do Office quando o documento for aberto

Importante

O runtime partilhado só é suportado em algumas aplicações do Office. Para obter mais informações, confira Conjuntos de requisitos de tempo de execução compartilhados.

Pode configurar o seu Suplemento do Office para carregar e executar código assim que o documento for aberto. Isto é útil se precisar de registar processadores de eventos, pré-carregar dados para o painel de tarefas, sincronizar a IU ou executar outras tarefas antes de o suplemento estar visível.

Observação

A configuração é implementada com um método que o código chama no runtime. Isto significa que o suplemento não será executado na primeira vez que um utilizador abrir o documento. O suplemento tem de ser aberto manualmente pela primeira vez em qualquer documento. Após a execução do método, em Office.initialize, Office.onReady ou porque o utilizador utiliza um caminho de código que o executa; em seguida, sempre que o documento for reaberto, o suplemento é carregado imediatamente e qualquer código no Office.initialize método ou Office.onReady é executado.

Observação

Este artigo requer que o seu Suplemento do Office esteja configurado para utilizar um runtime partilhado. Para obter mais informações, consulte Configurar o seu Suplemento do Office para utilizar um runtime partilhado.

Configurar o suplemento para carregar quando o documento for aberto

O código seguinte configura o suplemento para carregar e começar a ser executado quando o documento é aberto.

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

Observação

O setStartupBehavior método é assíncrono.

Colocar código de arranque em Office.initialize ou Office.onReady

Quando o suplemento estiver configurado para ser carregado no documento aberto, este será executado imediatamente. O Office.initialize processador de eventos será chamado. Coloque o código de arranque no Office.initialize processador de eventos ou Office.onReady .

O seguinte código de suplemento do Excel mostra como registar um processador de eventos para eventos de alteração a partir da folha de cálculo ativa. Se configurar o suplemento para carregar no documento aberto, este código registará o processador de eventos quando o documento for aberto. Pode processar eventos de alteração antes de o painel de tarefas ser aberto.

// 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);
  });
}

O seguinte código de suplemento do PowerPoint mostra como registar um processador de eventos para eventos de alteração de seleção a partir do documento do PowerPoint. Se configurar o suplemento para carregar no documento aberto, este código registará o processador de eventos quando o documento for aberto. Pode processar eventos de alteração antes de o painel de tarefas ser aberto.

// 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);
}

Configurar o suplemento sem comportamento de carregamento no documento aberto

Podem existir cenários em que pretende desativar o comportamento "executar no documento aberto". O código seguinte configura o suplemento para não iniciar quando o documento é aberto. Em vez disso, será iniciado quando o utilizador o envolver de alguma forma, como escolher um botão do friso ou abrir o painel de tarefas. Este código não tem qualquer efeito se o método não tiver sido chamado anteriormente no documento atual, com Office.StartupBehavior.load como o parâmetro .

Observação

Se o suplemento chamar o método, com Office.StartupBehavior.load como parâmetro, em Office.initialize ou Office.onReady, o comportamento é ativado novamente. Portanto, neste cenário, desativá-lo aplica-se apenas à próxima vez que o documento for aberto e não a todas as aberturas subsequentes.

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

Obter o comportamento de carga atual

Poderão existir cenários em que o seu suplemento precisa de saber se está configurado para ser iniciado automaticamente da próxima vez que o documento atual for aberto. Para determinar qual é o comportamento de arranque atual, execute o seguinte método, que devolve um valor Office.StartupBehavior .

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

Confira também