Como configurar e utilizar a função RTD no Excel

Resumo

Nota

O desempenho da função RealTimeData (RTD) foi bastante melhorado no Excel M365 versão 2002 ou posterior. Para obter mais informações, consulte Melhoramentos de Desempenho e Limites do Excel.

Este artigo descreve a funcionalidade fornecida pela função RealTimeData (RTD). O Microsoft Office Excel fornece uma função de folha de cálculo, RealTimeData (RTD). Esta função permite-lhe chamar um servidor de Automatização de Modelo de Objeto de Componente (COM) para obter dados em tempo real.

Quando tiver de criar um livro que inclua dados atualizados em tempo real, por exemplo, dados financeiros ou dados científicos, agora pode utilizar a função de folha de cálculo RTD. Em versões anteriores do Excel, o Dynamic Data Exchange (DDE) é utilizado para esse fim. A função RTD baseia-se na tecnologia COM e proporciona vantagens na robustez, fiabilidade e conveniência. O RTD depende da disponibilidade de um servidor RTD para disponibilizar os dados em tempo real ao Excel. Para obter mais informações sobre como criar um servidor RTD, consulte a secção "Referências".

A função RTD obtém dados de um servidor RTD para utilização no livro. O resultado da função é atualizado sempre que novos dados ficam disponíveis a partir do servidor e o livro pode aceitá-lo. O servidor aguarda até que o Excel esteja inativo antes de atualizar. Isto alivia o programador de ter de determinar se o Excel está disponível para aceitar atualizações. A função RTD difere das outras funções a este respeito, porque outras funções são atualizadas apenas quando a folha de cálculo é recalculada.

Embora a função RTD forneça uma ligação para dados num servidor, não é o mesmo tipo de ligação que referências a células noutras folhas de cálculo ou livros. Por exemplo, se utilizar a função RTD num livro, não receberá a mensagem de arranque Ligações quando abre o livro, nem pode gerir o estado de uma função RTD através da caixa de diálogo Editar Ligações.

Sintaxe

A função RTD utiliza a seguinte sintaxe

=RTD(RealTimeServerProgID,ServerName,Topic1,[Tópico2], ...)

em que os argumentos da função são os seguintes:

  • RealTimeServerProgID

    Uma cadeia que representa o ID do Programa do servidor RTD instalado no sistema local. Normalmente, este é um suplemento COM que é registado por um procedimento de configuração ou através do RegSvr32. RealTimeServerProgID é um argumento necessário.

  • ServerName

    Uma cadeia que representa o nome do servidor no qual o servidor RTD deve ser executado. Se o servidor RTD for executado localmente, o ServerName deve ser uma cadeia vazia ("") ou omitido.

  • Tópico1, [Tópico2], ...

    Cadeias que determinam os dados que estão a ser obtidos. Pode utilizar de um a 28 tópicos, embora seja necessário apenas um tópico.

Utilizar RTD

Como exemplo da função RTD, considere obter informações de um servidor que fornece dados contínuos para corredores em várias corridas simultâneas. Suponha que o servidor é fornecido como uma DLL (Dynamic Link Library) com o nome RaceReport.dll, que está instalado no computador do utilizador e que está registado como um suplemento COM pelo seu próprio processo de configuração. A forma geral da função RTD, conforme utilizado com este servidor, pode ser a seguinte

=RTD("MyRTDServerProdID","MyServer","RaceNum","RunnerID","StatType")

em que os tópicos RaceNum, RunnerID e StatType determinam a raça de interesse, o corredor cujos dados são necessários e o tipo de dados para uma utilização específica da função, respetivamente.

Aqui, o utilizador pode selecionar uma célula e escrever a seguinte fórmula na mesma

=RTD("ExcelRTD.RaceReport","","2","16","Hora")

para ver o tempo decorrido atual para o corredor número 16 na corrida número 2. O número de tópicos e a natureza dos dados associados é determinado pelo programador do servidor COM. Por exemplo, o servidor de relatórios race poderá fornecer dados diferentes se utilizar a seguinte função RTD:

=RTD("ExcelRTD.RaceReport","","3";"25","Posição")

Neste caso, os dados devolvidos indicam a posição atual do corredor número 25 na corrida número 3.

Desta forma, a mesma função pode ser utilizada de forma diferente em todo o livro para obter dados diferentes do mesmo servidor, sendo que todos são atualizados automaticamente.

Wrappers para Simplificar a Utilização

A função RTD pode ser utilizada dentro de funções definidas pelo utilizador (UDFs) no Microsoft Visual Basic for Applications. Em seguida, tornam-se wrappers para a função RTD. Esta abordagem pode ser útil para proteger os utilizadores dos detalhes do nome do servidor RTD e progID e para permitir que se concentrem apenas nos dados que são importantes para os mesmos.

Por exemplo, no cenário anterior, o utilizador pode ter duas funções: GetTime(RunnerID) e GetPosition(RunnerID). Estas funções partem do princípio de que o utilizador está sempre a lidar com o mesmo servidor e número race. Por conseguinte, o utilizador só tem de especificar o ID de um corredor para receber dados atuais sobre o tempo e a posição decorridos do corredor, respetivamente.

Cálculo

Uma vez que o RTD atualiza os dados quando o Excel está inativo, continua a receber informações se o Excel estiver no modo de cálculo manual. Nesse caso, os novos dados são colocados em cache e os valores atuais são utilizados quando é efetuado um cálculo manual.

Segurança

Os servidores RTD devem ser assinados digitalmente. Se um servidor RTD não estiver assinado digitalmente, o servidor poderá não carregar e será apresentado um #N/D nas células que referenciam o servidor RTD.

Para o Microsoft Office Excel 2007, pode rever as definições de segurança através do Centro de Confiança. Isto pode ser acedido através do separador Centro de Confiança na caixa de diálogo Opções do Excel .

Para o Microsoft Office Excel 2003 e no Microsoft Excel 2002, o comportamento de carregamento pode ser alterado ao ajustar as definições de segurança de macros no Excel.

Referências

Para obter mais informações sobre o RTD e a segurança do Excel, consulte Como configurar e utilizar a função RTD no Excel.

Para obter mais informações sobre como criar um servidor RTD, consulte Como criar um servidor RealTimeData para o Excel.