Escolar Documentos
Profissional Documentos
Cultura Documentos
VBA Portugues
VBA Portugues
, Alameda,
bsico visual do CA www.sybex.com para as aplicaes (VBA) integrada como uma parte
padro de AutoCAD 2002. Isto significa que voc pode usar VBA para todas suas tarefas do
desenvolvimento de AutoCAD, em vez (ou alm) de ObjectARX e de AutoLISP. Se you.re j
familiar com algum dialect de BASIC, achado de you.ll que VBA fcil de aprender. Se you.re
um colaborador seasoned de AutoLISP, voc puder encontrar a maneira de VBA de fazer
coisas para ser impar, mas aps um quando far o sentido. There.s uma tabela no fim deste
captulo que lhe ajudar traduzir conceitos de AutoLISP a seus equivalentes de VBA.
Automatizao Compreensiva De ActiveX. Cdigo Da Escrita VBA. Usando Procedimentos.
Variveis e constantes. Controle Estruturas. Constr- Em Funes. Manipulao De Erro.
Converter-se de AutoLISP a VBA. Se voc quiser experimentar. Copyright o 2001 SYBEX, Inc.,
Alameda, CA www.sybex.com que comea comeado com fontes do pacote de VBA Microsoft.s
VBA duas coisas a AutoCAD. Primeiramente, there.s o motor prprio da lngua de VBA, que faz
o trabalho de interpretar todo o cdigo de VBA voc escreve quando sua aplicao
executada. Em segundo, there.s o VBA integrou o ambiente do desenvolvimento (IDE), que o
fornece com as ferramentas para editar e eliminar erros de seu cdigo de VBA. Neste captulo,
you.ll aprendem os princpios da lngua de VBA prprios. O captulo seguinte, encontrado
tambm neste CD, descreve o IDE e como integrar o cdigo de VBA com o usurio
interface.However de AutoCAD, voc necessita saber apenas bastante sobre o IDE para
datilografar dentro e executar procedimentos para seguir junto com este captulo, assim here.s
uma introduo rpida. Lanar o VBA IDE para comear comeou, you.ll querem tornar-se
familiares com o ambiente integrado VBA do desenvolvimento de AutoCAD, ou o IDE. As
seguintes etapas mostram-lhe como abrir o IDE. 1. Selecione o editor bsico do Visual do
Macro das ferramentas de um menu drop-down de AutoCAD. Isto abre o editor de VBA em uma
janela separada. 2. Com o IDE aberto, voc tem diversas opes a mover-se entre o IDE e a
janela de AutoCAD. Estale a tecla da vista AutoCAD na extremidade esquerda do editor toolbar,
ou selecione o AutoCAD da vista de um menu do editor. 3. A combinao Alt+F11 chave moveo tambm do editor para trs para AutoCAD. Pressione Alt+F11 para ir para trs da janela
principal de AutoCAD ao editor de VBA. Voc pode tambm abrir o editor automaticamente
quando voc carrega um projeto de VBA. Para fazer assim, para escolher o projeto do Load do
Macro das ferramentas e para fazer certo a caixa de verificao bsica visual aberta do editor
selecionada. Criando um mdulo novo em toda a hora dada, voc pode ter mais de um projeto
de VBA aberto em AutoCAD. (voc no necessita ter nenhum projeto aberto, entretanto.) Todos
os componentes em um projeto so carregados ento o projeto projeto de opened.A pode
consistir em alguns destes componentes: . Mdulos. Mdulos da classe. UserForms que
COMEA COMEADO COM 2001 SYBEX do copyright de VBA 3, Inc., Alameda, mdulo do
CA www.sybex.com A um recipiente para a classe que de VBA code.A o mdulo o
componente de VBA usado definir um tipo novo de object.A UserForm um componente
customizable da relao de usurio. Os mdulos da classe so um tpico avanado, e you.ll
aprendem sobre UserForms no captulo 99 (que est tambm neste CD), mas para agora, let.s
cram apenas um mdulo padro. Este ser um lugar onde voc possa executar amostras do
cdigo. Se voc tivesse AutoCAD aberto com um desenho em branco do defeito carregado, o
achado de you.ll que este desenho inclui um projeto do defeito VBA nomeou ACADProject. 1.
Para introduzir um mdulo novo, um Module seleto da insero dos menus do IDE, ou para
estalar a tecla do mdulo da insero no padro toolbar. Isto cra um mdulo novo e abre esse
mdulo no editor. O editor pode indicar muitos mdulos em uma vez, desde it.s uma aplicao
mltipla da relao do original (MDI). 2. Quando you.re que aprende VBA, achado de you.ll
provavelmente ele til maximize o mdulo you.re que trabalha com. Estale a tecla do maximize
na janela Module1 para ampli-la. Os mdulos novos criadores e funcionando de um
procedimento prendem o cdigo de VBA, mas um mdulo pode conter muitos do cdigo. Em
VBA, o cdigo quebrado acima em procedures.You.ll aprende sobre os tipos diferentes de
procedimentos em um momento, mas para agora, let.s cram apenas um. 1. Na janela
Module1, datilografe HelloWorld secundrio e pressione a entrada key.VBA introduzir
parnteses no fim da definio do procedimento, e cram automaticamente uma linha do
submarino da extremidade para marcar o fim do procedimento. 2. Datilografe agora o mundo
do Hello de MsgBox. entre nas linhas secundrias do submarino e da extremidade. Observe
que VBA o fornece com o Info rpido sobre os argumentos para a funo de MsgBox. Para
agora, voc pode apenas ignorar estes. 3. Estale o rato em qualquer lugar fora da linha you.ve
datilografada apenas para aceit-la e desobstrudo o Info rpido. 4. Agora que you.ve criou um
procedimento, procedimentos de funcionamento da lata do funcionamento it.You de let.s
conveno no alto). O efeito desta indicao deve dizer a VBA que voc pretende declarar
explicitamente todas suas variveis antes de as usar. Se voc omitir a opo explcita, VBA
criar automaticamente um variant-tipo varivel para toda a varivel que voc se usar sem
declarao. Esta opo pode proteg-lo de encontro a irritar e duro--encontra o erro. Para o
exemplo, se voc don.t tiver o jogo explcito da opo, este VBA legal: Funo Oops() como
LongVariableName no ofuscante longo como o inteiro LongVariableName = 4 Oops = funo
mesmo que it.s legal, a funo como escrita retorne 0, no 16 do fim de LongVariableName *
de LongVarriableName, porque um dos nomes variveis soletrado diferentemente do que os
outros dois, fazendo com que VBA atribua-lhe o armazenamento separado. Se voc tentar
funcionar este procedimento em um mdulo com jogo explcito da opo, embora, you.ll
comeam um erro imediato da compilao: Varivel no definida de VBA. Voc pode verificar
para ver se h erros de compilao em qualquer altura que dentro em VBA selecionando
elimina erros do Compile ACADproject. Ajustar a opo explcita assim importante que there.s
uma maneira dizer VBA para fazer este para voc em cada mdulo novo. 1. Os Options seletos
das ferramentas do VBA menus.You drop-down vem a caixa de dilogo das opes do editor,
mostrada em figura 97.4. 2. Verifique a caixa de verificao varivel da declarao reque (pelo
defeito it.s unchecked) e you.ll nunca tm que preocupar-se sobre incluir a opo explcita outra
vez voc mesmo. Faa a isto a primeira coisa que voc faz aps AutoCAD instalando, antes
que voc escreva todo o cdigo em tudo. CAPTULO NINETY-SEVEN. A INTRODUO A VBA
no 2001 SYBEX do copyright de AUTOCAD 14, Inc., Alameda, figura 97.4 do CA
www.sybex.com as constantes VBA da caixa de dilogo das opes do editor suporta
constants.names para os valores que a mudana de won.t durante seu application.You pode
usar constantes fazer seu cdigo mais readable. Para o exemplo, mesmo que VBA doesn.t
forneam uma funo automtica aos graus do converso em radianos, it.s fcil bastante de
escrever um: Funo DegreesToRadians1(dblDegrees como o dobro) _ como dobro
DegreesToRadians1 = (dblDegrees/180) * funo que de 3.14159 fins o underscore (_) seguido
pela combinao da chave de entrada (.) serve como um carter da linha-continuao em VBA,
assim que as primeiras duas linhas deste exemplo so uma linha tanto quanto o intrprete de
VBA. AS VARIVEIS E AS CONSTANTES 15 copyright o 2001 SYBEX, Inc., Alameda, CA
www.sybex.com embora it.s fcil bastante de ver o que este exemplo faz, voc possa fazer lhe
um bocado mais desobstrudo usando uma constante representar o nmero mgico: A funo
DegreesToRadians2(dblDegrees como o dobro) _ como Const dobro Pi = 3.14159
DegreesToRadians2 = (dblDegrees/180) * funo do fim do Pi gosta de variveis, constantes
pode ser declarada com local, mdulo, ou espao global. Se voc Pi needed em muitos
lugares, voc puder o definir como uma constante global preferivelmente: Const pblico Pi =
3.14159 a funo DegreesToRadians3(dblDegrees como o dobro) _ como dobro
DegreesToRadians3 = (dblDegrees/180) * disposies da funo do fim do Pi voc pode
agrupar variveis de VBA em colees de arrays.numbered das variveis do mesmo tipo. Para
declarar uma disposio, voc diz simplesmente a VBA quantos elementos ter: StrK(1 no
ofuscante a 5) porque a corda isto cra uma disposio, strK, com o armazenamento para cinco
cordas, numerado 1 5.You direto pode atribuir valores aos membros de uma disposio, ou llos para fora outra vez: ArrayDemo() Secundrio strK(1 No ofuscante A 5) Como A Corda
strK(1) = H. StrK(2) = e. strK(3) = l. strK(4) = l. strK(5) = o. Debug.Print strK(1), strK(2), strK(3),
_ strK(4), strK(5) disposies do submarino da extremidade tendem a ser de uso limitado em
VBA; em muitos exemplos, as colees (discutidas abaixo) provam mais useful.However,
they.re crtico para uma coisa em AutoCAD: o CAPTULO NINETY-SEVEN de VBA. A
INTRODUO A VBA no 2001 SYBEX do copyright de AUTOCAD 16, Inc., Alameda,
respresentao do CA www.sybex.com de um ponto no espao modelo de AutoCAD.s como
uma disposio de doubles.Here.s o que o cdigo para extrair uma linha em AutoCAD pde
olhar como: DrawLine() secundrio ptStart(1 no ofuscante a 3) como ptEnd(1 no ofuscante
dobro a 3) como o dobro ptStart(1) = os 1 ptStart(2) = 1 ptStart(3) = 1 ptEnd(1) = 2 ptEnd(2) = 2
ptStart de ptEnd(3) = 2 ThisDrawing.ModelSpace.AddLine, submarino cada um do fim do ptEnd
das disposies mantem a informao necessria encontrar um ponto. Os primeiros, segundos,
e terceiros elementos da preenso da disposio, respectivamente, do x -, y -, e z-coordenam
do ponto no espao modelo de AutoCAD.s. As colees das colees VBA fornecem uma
alternativa s disposies mantendo-se a par de artigos mltiplos. Ao contrrio das
disposies, que so projetadas prender as coisas que podem ser identificadas pelo nmero,
as colees so projetadas para access.You aleatrio podem pensar de uma coleo como um
lugar para stash qualquer coisa que voc gosta e para o recuperar mais tarde pelo nome. O
procedimento de CollectionDemo demonstra a sintaxe que voc usa trabalhar com colees:
expresso (este exemplo, intNum) cada caixa por sua vez, at que encontr um que matches.At
que apont, cdigo que particular caixa est executed.Here, do retorno valor procedimento est
CAPTULO NINETY-SEVEN. A INTRODUO A VBA no 2001 SYBEX do copyright de
AUTOCAD 20, Inc., Alameda, CA www.sybex.com determinado pelo case.As que combinando
voc pode ver, o caso pode ser um valor particular, uma escala dos valores (3 a 5), ou de uma
coleo dos valores (7, 9).You podem usar a indicao seleta do caso com qualquer tipo de
varivel. Os valores dos casos individuais devem ser o mesmo tipo de dados que a varivel.
Para laos s vezes seu programa necessitar executar os mesmos tempos do mltiplo da
operao; para o exemplo, adicionar um logo a todos os desenhos relacionados a um
project.VBA fornece diversas estruturas dando laos para repetitiva executar o cdigo. Para o
lao talvez o mais simples destes, fornecendo uma maneira executar um jogo das indicaes
um nmero predeterminado das pocas. Para o lao trabalha incrementando ou decrecendo
um contador: IntI no ofuscante secundrio de ForDemo() como o inteiro. Simples para o lao:
o intI incrementado perto. um cada vez que o lao executado para o intI = intI seguinte do
intI de 1 a 5 Debug.Print. Para o lao com incremento: neste caso. 2 so adicionados ao intI
com cada lao para o intI = 1 a 5 intI seguinte do intI da etapa 2 Debug.Print. Inverta para o
lao: aqui, o intI . decrecido cada vez atravs do lao para o intI = 5 a 1 submarinos seguintes
da extremidade do intI do intI de etapa -1 Debug.Print para laos so os mais teis quando
voc sabe exatamente quantas vezes voc necessita executar o lao. Frequentemente, uso a
de you.ll para que o lao processe os elementos em uma disposio. Se you.re que trata de
uma coleo, voc puder ser melhor fora de usar a d laos, como mostrado na seo
seguinte. CONTROLE o 2001 SYBEX do copyright das ESTRUTURAS 21, Inc., Alameda, CA
www.sybex.com fazem laos fazem laos fornecem uma alternativa para aos laos quando
voc don.t sabe quantas vezes voc necessita executar o lao mas para saber quando voc
necessita parar. O mais simples do laos executam uma indicao to por muito tempo como
alguma circunstncia verdadeira e param-na assim que for falsa: DoDemo1(intInput
secundrios como o inteiro) fizerem quando intInput do intInput 0 Debug.Print; intInput =
intInput - 1 figura 97.6 do submarino da extremidade do lao mostra a sada deste lao. Figura
97.6 a sada de um simples d laos no semicolon no fim da indicao de Debug.Print diz VBA
para pr resultados adicionais sobre a mesma linha da sada. Voc pode tambm causar a d
laos para ser executado to por muito tempo como uma condio particular falsa se usando
at em vez de quando: DoDemo2(intInput secundrios como o inteiro) at o intInput = 0 intInput
de Debug.Print; intInput = intInput - 1 submarino da extremidade do lao faz laos permite
tambm que voc teste a circunstncia na extremidade do lao melhor que no alto, como
mostrado nos dois exemplos seguintes: DoDemo3(intInput Secundrio Como o CAPTULO
NINETY-SEVEN Do Inteiro). A INTRODUO A VBA no 2001 SYBEX do copyright de
AUTOCAD 22, Inc., Alameda, CA www.sybex.com faz o intInput de Debug.Print; intInput =
intInput - 1 lao quando o submarino secundrio DoDemo4(intInput da extremidade do intInput
0 como o inteiro) fizer o intInput de Debug.Print; intInput = intInput - 1 lao at que o intInput = 0
submarinos A da extremidade d laos com o teste em sua extremidade executar sempre ao
menos uma vez, mesmo se seria saltada inteiramente se o teste estiver no incio do lao. O
operador goTo alm a ramificar e a dar laos, VBA inclui um operador para transferir o fluxo do
controle a um outro lugar no programa. Este o goTo infamous, que faz com que a execuo
recomece em um ponto diferente (uma etiqueta) no procedimento: Sub o In de GoToDemo()
Debug.Print o programa demostrativo. Cpia goTo dos This won.t de GoHere Debug.Print.
GoHere: Os This de Debug.Print imprimiro. Termine o submarino neste exemplo, GoHere
uma etiqueta, uma indicao nonexecutable que sirva marcar somente um lugar no
procedimento. Embora usando uma indicao goTo seja associado frequentemente com o
sloppy, duro--decifre programando, esta indicao essencial na manipulao de erro em
VBA, como you.ll vem mais tarde neste captulo. Se no, voc pode quase sempre evitar
indicaes goTo em seu cdigo. Constr- em funes que de VBA VBA inclui uma variedade
larga de functions.While interno esta tampa todo da seo can.t, voc aprender sobre as mais
teis here.You pode querer rever o 2001 SYBEX do copyright das FUNES 23 de BUILT-IN
VBA, Inc., Alameda, seo do Functions. do CA www.sybex.com do VBA a ajuda em linha para
um list.You mais detalhado pode tambm usar o browser do objeto (veja o captulo 99 neste
CD) ver todas as funes de VBA. Os operadores VBA incluem a sustentao para uma
variedade dos operadores. A tabela 97.2 sumaria estes operadores. Embora VBA inclua as
rguas de precedncia razoavelmente complexas do operador que governam a ordem em que
os operadores so avaliados, voc pode sempre usar parnteses forar uma ordem particular
das operaes. Exponenciao do MEANING do OPERADOR dos operadores da tabela 97.2
da FUNO das funes da corda de algum VBA o valor do ASCII do primeiro carter em strX.
Chr(n) retorna uma corda cujo o valor do ASCII seja n. InStr(Start, str1, str2) retorne a posio
em str1 onde str2 ocorre como um substring. Comeos que olham o comeo da posio.
LCase(strU) retorna a traduo lowercase do strU. Len(strX) retorna o nmero dos carteres
em strX. LTrim(strX) remove os espaos principais de strX. Mid(strX, comeo, comprimento)
retorna uma corda dos carteres do comprimento que comeam no comeo da posio em
strX. Right(strX, n) retornos os carteres de n que do fim direito de strX. RTrim(strX) removem
os espaos arrastando dos retornos de strX. Space(n) uma corda que consiste em n espaa.
Trim(strX) remove conduzir e arrastar espaos dos retornos de strX. UCase(strL) a traduo
caixa das funes matemticas VBA de strL. inclui a maioria das funes matemticas comuns
(alm aos operadores matemticos esse you.ve visto j). A tabela 97.4 alista o mais importante
destas funes. A tabela 97.4 RESULTADOS matemticos Abs(x) da FUNO das funes de
algum VBA retorna o valor absoluto de retornos que do x. Atn(x) o arctangent de x. Cos(x)
retorna o cosine de retornos do x. Int(x) o inteiro o maior mais menos do que ou o igual a x.
Log(x) retorna o logartmo natural do CAPTULO NINETY-SEVEN do x.. A INTRODUO A
VBA no 2001 SYBEX do copyright de AUTOCAD 28, Inc., Alameda, tabela 97.4 do CA
www.sybex.com (continuada) funes matemticas Rnd(x) de algum VBA retorna um nmero
aleatrio se x for positivo. Sgn(x) retorna 1 se x for positivo e 1 se x for negativo. Sin(x) retorna
o seno de retornos que do x. Sqr(x) a raiz quadrada de x. Tan(x) retorna o tangent de x. Como
AutoCAD, VBA requer que os argumentos s funes trigonometric estejam expressados nos
radianos. As funes VBA do date/Time tm uma seleo das funes para ajudar-lhe trabalhar
com datas e pocas. It.s tambm possvel fazer sua prpria aritmtica da data e da hora, uma
vez que voc compreende como as datas e os tempos so data de stored.All e variveis do
tempo pontos flutuando double-precision, e conter um nmero de dias e dias parciais desde
uma data zero arbitrria. Isso significa que voc pode adicionar 7, para o exemplo, a uma
varivel da data, e comea o mesmo dia na seguinte semana. A tabela 97.5 mostra algumas
das funes internas que lhe ajudaro trabalhar com datas e pocas em seu cdigo. Dois
destas funes, de DateAdd e de DateDiff, trabalho com intervalos. Os cdigos permissveis do
intervalo so mostrados na tabela 97.6. A tabela 97.5 alguns de RESULTADOS Time() da
FUNO das funes de data e de hora de VBA.s retorna o tempo atual. Date() retorna a data
atual. Now() retorna a data atual e a hora. DateAdd(Interval, nmero, data) adiciona o nmero
especificado dos intervalos data especificada. DateDiff(Interval, Date1, Date2) retorna o
nmero dos intervalos entre Date1 e Date2. Weekday(Date) retorna o dia da semana em que a
data especificada cai. BUILT-IN VBA FUNCIONA 2001 SYBEX de 29 copyright, Inc., Alameda,
dia de um quarto yyyy do ms y do ano q m do INTERVALO do CDIGO dos cdigos do
intervalo da tabela 97.6 do CA www.sybex.com da manipulao de erro minuciosa It.s da hora n
s segundo da semana h do ww do weekday do dia w do ano (1 a 366) d importante certificar-se
de que seu cdigo de VBA segura todos os erros que ocorrerem no curso de sua aplicao.
Meio dos erros don.t necessariamente que cdigo escrito you.ve do bad.. Em VBA, it.s
frequentemente necessrio provocar erros no curso normal de uma aplicao. Para o exemplo,
para determinar se there.s um diskette em uma movimentao, it.s o mais simples tentar
apenas escrever uma lima a essa movimentao e interceptar o erro que ocorre se a
movimentao estiver vazia. Nesta seo, you.ll aprendem como desenvolver o cdigo com
manipulao de erro e ver como usar o err e eliminar erros de objetos para derivar a
informao sobre erros. Usar-se no comportamento goTo do defeito do erro VBA.s em resposta
aos erros completamente simples: It.s projetou parar operaes e notificar o usurio. Para o
exemplo, suponha-o funcionar esta funo da janela imediata com uma entrada de 0: Funo
ErrorDemo1(intX como o inteiro) como inteiro ErrorDemo1 = CAPTULO NINETY-SEVEN da
funo do fim de 10/intX. INTRODUO A VBA no 2001 SYBEX do copyright de AUTOCAD 30,
Inc., Alameda, CA www.sybex.com naturalmente, voc can.t divide-se por 0, assim que esta
chamada causar um erro runtime. Figura 97.10 mostra o resultado. Figura 97.10 erro runtime
de Untrapped voc pode impedir que os usurios da extremidade v o cdigo em seu projeto, se
houve um erro ou no, usando a proteo do projeto. Dos menus de VBE, escolha
propriedades do Project das ferramentas, selecione a aba da proteo, e verifique o projeto do
fechamento para ver se h a caixa de verificao da viso. Na caixa de dilogo que relata o
erro runtime, estalar a tecla da extremidade terminar simplesmente a execuo de todo o
cdigo, quando estalar a tecla eliminar erros suspender a execuo do cdigo e destacar a
linha que causou o erro. Em a maioria de aplicaes, este comportamento do defeito uso de
unacceptable.You.ll geralmente o VBA na indicao goTo do erro emitir todos os erros a um
ponto particular (etiqueta) em seu cdigo, e em negcio com os erros l, para impedir que a
manipulao de erro do defeito de VBA.s faa exame sobre. A funo ErrorDemo2 mostra
como esta pde ser realizada para nossa funo da amostra. Funo ErrorDemo2(intX como o
inteiro) como o inteiro no erro HandleErr goTo ErrorDemo2 = 10/intX ExitHere: Retire A Funo
HandleErr: BUILT-IN VBA FUNCIONA 2001 SYBEX de 31 copyright, Inc., Alameda, CA
www.sybex.com seleciona o caso 11 do caso Err.Number. A diviso pelo Zero zero de MsgBox
no uma entrada legal. Caso MsgBox Outro Err.Number &. . & Err.Description, _ vbCritical,
Error Em ErrorDemo2. Funo seleta Here.s do fim de ExitHere do resumo da extremidade
uma anlise passo a passo desta funo. 1. Sobre a indicao goTo do erro diz a VBA que
caso que de todo o erro, deve recomear a execuo na etiqueta HandleErr. 2. A funo
continua ento com sua operao normal. 3. Se nada for erradamente, a indicao da funo
da sada ser a ltima indicao a ser executada. 4. Se qualquer erro ocorrer, a execuo
continua em HandleErr. 5. A indicao seleta do caso faz uma deciso baseada no nmero do
erro (veja a seo seguinte para uma discusso do objeto do err). 6. A funo inclui uma
mensagem especial para um erro particular, diviso por 0, que o desenhador da funo
antecipava. 7. Para todo o outro erro, a funo afixa uma mensagem da informao ao usurio.
Este doesn.t fornece todo o excesso adicional da informao isso que VBA fornece pelo
defeito, mas segurando o erro, a funo impede que a execuo esteja parada. 8. A indicao
de ExitHere do resumo cancela a condio de erro e permite que a execuo continue na
etiqueta de ExitHere. Sempre retirando a funo no mesmo ponto, voc pode evitar alguns
problemas futuros da manuteno. O esqueleto demanipulao usado nesta funo tpico da
manipulao de erro de VBA. Se you.re que constroem uma aplicao para a distribuio a
outros, you.ll quiserem incluir um alimentador do erro similar a este em cada procedimento.
CAPTULO NINETY-SEVEN. INTRODUO A VBA no 2001 SYBEX do copyright de
AUTOCAD 32, Inc., Alameda, CA www.sybex.com o objeto no cdigo demanipulao da
amostra, voc do err pode ter observado as referncias a Err.Number e a Err.Description. Estas
so duas propriedades do objeto do err, uma parte self-contained de funcionalidade construda
em VBA. Apenas porque AutoCAD tem um modelo do objeto (discutido extensivamente no
captulo 98 neste CD), vba prprio fornece alguns objetos. Se um erro ocorrer em seu cdigo,
voc pode determinar o que o erro verificando as propriedades do objeto do err, que refletir
o erro o mais recente (se nenhum erro ocorreu, Err.Number ser 0). A tabela 97.7 mostra as
propriedades as mais importantes do objeto do err. As propriedades da tabela 97.7 do err
objetam o nmero do nmero do MEANING da PROPRIEDADE do erro o mais recente. Texto
da descrio do erro o mais recente. Fonte da fonte do erro o mais recente. Para o exemplo, se
um erro ocorrer ao trabalhar com controles em um formulrio, a fonte seja MSForms. Nmero
do erro de LastDllError de uma chamada a Windows API. O objeto eliminar erros um outro
objeto de VBA que possa ser til ao tratar do cdigo o objeto eliminar erros. O objeto eliminar
erros suporta um nico mtodo, a cpia, que permite que seu cdigo emita uma mensagem
janela imediata. Se voc figura de can.t para fora de what.s que vai erradamente quando o
cdigo misbehaving, voc puder usar o objeto eliminar erros ajudar para fora a coisas da sorte.
Para o exemplo, se there.s um lngCount varivel que esteja comeando o jogo a um valor
inesperado, voc puder fazer com que seu cdigo imprima o valor atual da varivel janela
imediata introduzindo a seguinte linha: O lngCount de Debug.Print o objeto eliminar erros tiver
um efeito somente quando you.re que funciona seu cdigo no editor. Quando os usurios
interagem com sua aplicao, won.t vem estas mensagens. BUILT-IN VBA FUNCIONA 2001
SYBEX de 33 copyright, Inc., Alameda, CA www.sybex.com que converte-se de AutoLISP a
VBA VBA no uma recolocao para AutoLISP. H ainda muitas coisas que so fceis de
fazer em AutoLISP mas est difcil ou impossvel de VBA.You shouldn.t suponha que VBA a
tecnologia prefervel apenas porque it.s mais novo. Na outra mo, a facilidade de projetar
caixas de dilogo com o UserForms (coberto no captulo 99) e a acessibilidade de VBA fazemlhe uma lngua compelindo para as aplicaes simples que requerem um usurio que
interface.You pode se encontrar cdigo existente movendo de AutoLISP parcialmente ou
inteiramente s utilidades novas de VBA para empregar caractersticas de VBA. Quando
there.s nenhuma ferramenta automatizada para se converter de AutoLISP a VBA, nem os
equivalentes exatos para cada AutoLISP comandam, l forem similaridades entre qualquer par
de lnguas de programao. Se o familiar com AutoLISP, achado de you.re de you.ll as
equivalncias na tabela 97.8 til como voc vier at a velocidade em VBA. Tabela 97.8
AutoLISP ao EQUIVALENTE do COMANDO VBA das converses AUTOLISP de VBA + + - - *
*// = =/= = = ~ no 1+ + 1 1 - 1 abs ads Application.ListADS MsgBox alerta e e CAPTULO
NINETY-SEVEN do abs. INTRODUO A VBA no 2001 SYBEX do copyright de AUTOCAD 34,
Inc., Alameda, tabela 97.8 (continuada) AutoLISP do CA www.sybex.com do cond atan do fim
do fim de Chr do chr de Cint do atoi do atof CDbl do arxunload Application.UnloadARX ascii Asc
ao dictsearch seleto Dictionary.GetName do dictrename Dictionary.Rename do dictremove
Dictionary.Delete do dictnext Dictionaries.Item do dictadd Dictionaries.Add de cos Cos do caso
Atn do arxload Application.LoadARX do arx Application.ListARX dos angtos Utility.AngleToString
do angtof Utility.AngleToReal do ngulo Utility.AngleFromXAxis das converses de VBA, entupd
Entity.Update Eqv igual do entmake ActiveDocument.AddXXXX de Dictionary.GetObject * erro *
err o flutuador findfile CDbl do reparo, interno, ou de Cint do reparo de Dir do expt de Exp do
exp ^ que CONVERTE-SE DE AUTOLISP ao 2001 SYBEX do copyright de VBA 35, Inc.,
Alameda, tabela 97.8 (continuada) AutoLISP do CA www.sybex.com ao foreach das converses
de VBA para o getcfg do getangle Utility.GetAngle de Each/Next, getpoint getorient
Utility.GetPoint Utility.GetReal getreal do getkword Utility.GetKeyword Utility.GetOrientation do
getint Utility.GetInteger do getdist Utility.GetDistance do getcorner Utility.GetCorner do objeto
das preferncias do getenv que getstring a propriedade handent getvar do punho do graphscr
Application.Caption de Utility.GetString Application.GetVariable se str logand do itoa de
If/Then/Else do registro do registro de IsArray do listp de ReDim da lista de Ubound do ltimo e
minusp mnimo mnimo do mximo do mximo do imp do logior ou do lsh