Não uso o Office da M$, mas seria uma rotina melhor se você capturar via 
"Registro do Windows", lá você encontra a versão do Office instalada, o 
local (path), o nome do executável, os plugins instalados, os recursos 
existentes e várias outras informações úteis. Não há uma rotina 
específica, basta conhecer como se usa o TRegistry e (para quem tem o 
Office instalado) buscar as chaves e valores a ser capturados. O bom 
seria pegar uma versão 6,7 etc.. pois a cada nova versão pode ser que 
mude algumas chaves do Registry.
Para pegar a versão, a melhor maneira foi a que o Rodinei passou.

blz

Carlos escreveu:
>  
>
> Senhores, bom dia!
> Quero agradecer de coração as sugestões e informar que resolvi meu 
> problema com uma solução caseira...(POG), por favor compreendam.
> Como o recurso é mais um "Suvenir", então fiz da seguinde forma:
> Criei uma função que verifica a existencia do diretório do office:
>
> function TdmCadastro.versaoOffice(mExec:string): PAnsiChar;
> var
> mTexto: AnsiString;
> mResult: PAnsiChar;
> begin
> if DirectoryExists('C:\Arquivos de programas\Microsoft 
> Office\OFFICE9') then
> begin
> mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE9\' + mExec;
> Result := PAnsiChar(mTexto);
> Exit;
> end;
> if DirectoryExists('C:\Arquivos de programas\Microsoft 
> Office\OFFICE10') then
> begin
> mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE10\' + mExec;
> Result := PAnsiChar(mTexto);
> Exit;
> end;
> if DirectoryExists('C:\Arquivos de programas\Microsoft 
> Office\OFFICE11') then
> begin
> mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE11\' + mExec;
> Result := PAnsiChar(mTexto);
> Exit;
> end;
> if DirectoryExists('C:\Arquivos de programas\Microsoft 
> Office\OFFICE12') then
> begin
> mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE12\' + mExec;
> Result := PAnsiChar(mTexto);
> Exit;
> end;
> if DirectoryExists('C:\Arquivos de programas\Microsoft 
> Office\OFFICE13') then
> begin
> mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE13\' + mExec;
> Result := PAnsiChar(mTexto);
> Exit;
> end;
> end;
>
> e depois a chamo do meu form:
> winExec(dmCadastro.versaoOffice('Excel.exe'), SW_MAXIMIZE);
>
> No caso, se vc quiser a versão mais recente, é só colocar em ordem 
> decrescente, coisa que não preciso, pois na empresa, só tem um Office 
> por máquina, e todas só têm uma partição. (empresa pública).
>
> Fraterno abraço a todos e espero que seja útil, mas aceito 
> contribuição para melhorar o existente...
>
> Carlos
>
> .
>
> 

Responder a