Pergunta

é VBA vai desaparecer tão cedo, como VB6 tem? Eu não deveria desenvolver novos aplicativos do Office com VBA? Ou deveria ser o desenvolvimento de todos os novos aplicativos do Office com o VSTO?

Update: li recentemente esta artigo .

Foi útil?

Solução

Office VSTO oferece uma grande quantidade de funcionalidades adicionais sobre o Office VBA, e enquanto eu não acredito Microsoft sinalizou que vai terminar VBA (na verdade, eles disseram explicitamente que será em torno de, pelo menos, até que o Office 14; 2007 = Escritório office 12), eu acho que vale a pena o esforço para mover seus aplicativos para VSTO para aproveitar a flexibilidade e poder adicional.

Na verdade, eu não acho que depreciativo VBA seria viável, uma vez que uma boa quantidade de programação Escritório ocorre no nível macro pelos usuários de negócios e eu não acho que isso vai desaparecer tão cedo. Essas pessoas geralmente não têm acesso a uma IDE VSTO-capable.

Outras dicas

VSTO tem novas funcionalidades, mas também tem uma série de grandes deficiências em comparação com VBA.

Por um lado, Code Access Security pode tornar difícil para implantar aplicativos VSTO (que está sendo educado).

Por outro lado, o ambiente de desenvolvimento do VSTO é nem de longe tão acessíveis aos desenvolvedores "Poder usuário" como VBA. Por exemplo, nenhum gravador de macro para você começar.

E um grande empecilho é que o .NET interoperabilidade com out-of-process COM objetos não funciona bem. Por exemplo, se você quer manipular outras aplicações do Office (Word, PowerPoint, Outlook) de dentro de um aplicativo Excel VSTO, você vai encontrar várias cópias destes aplicativos em execução em segundo plano, pelas razões descritas em este artigo KB .

Tudo isso juntamente com o enorme investimento em existente VBA aplicativos meio VBA não vai desaparecer tão cedo.

A Microsoft afirmou que a vontade VBA ser apoiada avançar para o futuro previsível, mas eles também estão recomendando que novos aplicativos usar VSTO.

A última versão para Mac do MS Office não suportam VBA, e 64-bit Windows executa-lo em um 32-bit virtual de out-of-process mode. Então, se você está planejando uma nova aplicação usando o Office como uma plataforma, VSTO é definitivamente o caminho a percorrer, mas você não deve se preocupar muito com o suporte de herança.

Como @cori aponta, seria um grande comercialização não-não para MS para suporte puxão justo e quebrar software muito existente.

Microsoft foram dando dicas em uma versão de código gerenciado do Office com uma VSTO integrada (presumivelmente da mesma forma como o VB6 IDE é integrado para VBA, de modo que o VS IDE seria integrado para VSTO) desde .NET foi lançado pela primeira vez.

Dado o quanto de codificação está envolvido - e dado que este não produziria quaisquer recursos que seriam visíveis para os usuários - Duvido muito que este está no topo da lista de prioridades Microsoft. Eu posso imaginar que eles camada um conjunto de código gerenciado de objetos sobre a parte superior da base de código existente (tanto quanto Joel Spolsky em camadas um conjunto de objetos COM sobre a base de código C existente ao colocar VBA para Excel em primeiro lugar) e bung um novo IDE em como padrão, ao esconder o antigo. Mesmo que seria um grande exercício (imagine escrever o gravador de macro!). Claro, isso faria .NET pré-requisitos para o Office, que a equipe do Office só aceitará uma arma.

Eles nunca realmente remover VBA dos produtos, é claro - Excel ainda suporta Excel 4 macros, e Word ainda tem o objeto WordBasic Automation para apoiar Palavra 6 macros, e não há nenhum sinal de qualquer um daqueles que estão sendo removidos, uma vez que não é muito código legado para apoio -. e ninguém tem usado um desses modelos de codificação em uma década

Se a Microsoft não nunca colocou um ambiente .NET para o Office (que, francamente, eu duvido que nunca vai acontecer), então eles poderiam parar de adicionar suporte VBA para apresenta novo Office. Isso é o mais próximo que vamos chegar a interrupção do VBA.

Aqui está um comentário de Microsoft sobre o futuro apoio VBA. Em poucas palavras, ele não vai desaparecer em versões Windows do Office (mas é interrompido para versões de Mac).

VBA é um longo caminho de ser amortizados, de fato VBA está a ser reintroduzida a próxima versão do Office no MAC ( http://www.microsoft.com/presspass/press/2008/may08/05-13MacBU2008PR.mspx ).

Para a maioria das pessoas no terreno, VBA e C XLLs (e VB6 !!) continuam a ser as ferramentas de escolha. As ligações atuais .NET são lentos e oferecem ganho de produtividade zero. 3ª ferramentas de parte como ExcelDNA aliviar a dor um pouco, mas, obviamente, o não gerenciado C base (e assembler base) base de código do Office não sentar facilmente com .NET.

VBA add-ins são uma problemática pouco para implantar, mas VSTO é ainda mais. Além disso, VSTO envolve um pouco de sobrecarga, como ele precisa para iniciar o CLR antes de executar seu código.

Mas o mais importante de todos; VSTO tira a dor de escrever VBA.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top