constante valor descripciónlas teclas de 0 a 9 son las mismas que sus equivalentes ascii de 0 a 9:...
TRANSCRIPT
Calendar(constantes)
Lassiguientesconstantessepuedenutilizarencualquiersitiodelcódigoenlugardelosvaloresreales:
Constante Valor DescripciónvbCalGreg 0 Indicaqueseutilizael
calendariogregoriano.vbCalHijri 1 Indicaqueseutilizael
calendarioHijri.
Constantesdeatributodearchivo
Estasconstantessóloestándisponiblescuandosuproyectotieneunareferenciaexplícitaalabibliotecadetiposapropiadaquecontengaestasdefinicionesdeconstantes.
Constante Valor DescripciónNormal 0 Archivonormal.Noseestablecenatributos.ReadOnly 1 Archivodesólolectura.Elatributoesde
lectura/escritura.Hidden 2 Archivooculto.Elatributoesdelectura/escritura.System 4 Archivodesistema.Elatributoesde
lectura/escritura.Volume 8 Etiquetadevolumendelaunidaddedisco.El
atributoesdesólolectura.Directory 16 Carpetaodirectorio.Elatributoesdesólolectura.Archive 32 Elarchivocambiódesdelaúltimacopiade
seguridad.Elatributoesdelectura/escritura.Alias 64 Vínculoométodoabreviado.Elatributoesdesólo
lectura.Compressed 128 Archivocomprimido.Elatributoesdesólolectura.
Constantesdecarpetasespeciales
Estasconstantessóloestándisponiblescuandosuproyectotieneunareferenciaexplícitaalabibliotecadetiposapropiadaquecontengaestasdefinicionesdeconstantes.
Constante Valor DescripciónWindowsFolder 0 LacarpetaWindowscontienearchivosinstalados
porelsistemaoperativoWindows.SystemFolder 1 Lacarpetadelsistemacontieneunidadesde
dispositivo,bibliotecasyfuentes.TemporaryFolder 2 LacarpetaTempseutilizaparaalmacenar
archivostemporales.SurutaseencuentraenlavariabledelentornoTMP.
Constantesdecolor
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbBlack 0x0 NegrovbRed 0xFF RojovbGreen 0xFF00 VerdevbYellow 0xFFFF AmarillovbBlue 0xFF0000 AzulvbMagenta 0xFF00FF MagentavbCyan 0xFFFF00 CiánvbWhite 0xFFFFFF Blanco
Constantesdecolordelsistema
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbScrollBars 0x80000000 Colordelabarrade
desplazamientovbDesktop 0x80000001 ColordelescritoriovbActiveTitleBar 0x80000002 Colordelabarradetítulo
delaventanaactivavbInactiveTitleBar 0x80000003 Colorofthetitlebarfor
theinactivewindowvbMenuBar 0x80000004 Colordelabarradetítulo
delaventanainactivavbWindowBackground 0x80000005 Colordelaventanade
fondovbWindowFrame 0x80000006 Colordelmarcodela
ventanavbMenuText 0x80000007 Colordeltextoenlos
menúsvbWindowText 0x80000008 Colordeltextoenlas
ventanasvbTitleBarText 0x80000009 Colordeltextoenel
título,cuadrocontroldetamañoyflechadedesplazamiento
vbActiveBorder 0x8000000A Colordelbordedelaventanaactiva
vbInactiveBorder 0x8000000B Colordelbordedelaventanainactiva
vbApplicationWorkspace 0x8000000C Colordefondodelasaplicacionesdeinterfazdedocumentosmúltiples(MDI)
vbHighlight 0x8000000D Colordefondodeloselementosseleccionadosenuncontrol
vbHighlightText 0x8000000E Colordeltextodeloselementosseleccionadosenuncontrol
vbButtonFace 0x8000000F Colordelsombreadoenlacaradelosbotonesdecomando
vbButtonShadow 0x80000010 Colordelsombreadoenelbordedelosbotonesdecomando
vbGrayText 0x80000011 Textoatenuado(desactivado)
vbButtonText 0x80000012 Colordeltextoenbotonespresionados
vbInactiveCaptionText 0x80000013 Colordeltextoenuntítuloinactivo
vb3DHighlight 0x80000014 Colorderesalteparaelementosmostradosen3D
vb3DDKShadow 0x80000015 Colordesombramás
oscuraparaelementosmostradosen3D
vb3DLight 0x80000016 Segundocolormásbrillanteen3Ddespuésdevb3Dhighlight
vbInfoText 0x80000017 ColordeltextoenlaInformaciónsobreherramientas
vbInfoBackground 0x80000018 ColordefondoenlaInformaciónsobreherramientas
Constantesdecomparación
LassiguientesconstantesestándefinidasenlabibliotecadetiposdeVisualBasicparaAplicacionesysepuedenutilizarencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbUseCompareOption -1 Realizaunacomparaciónusandola
configuracióndelainstrucciónOptionCompare.
vbBinaryCompare 0 Realizaunacomparaciónbinaria.vbTextCompare 1 Realizaunacomparacióntextual.vbDatabaseCompare 2 EnMicrosoftAccess(sóloWindows),
realizaunacomparaciónbasándoseenlainformacióncontenidaensubasededatos.
Constantesdecódigodeteclas
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbKeyLButton 0x1 Botónizquierdodelmouse(ratón)vbKeyRButton 0x2 Botónderechodelmouse(ratón)vbKeyCancel 0x3 TeclaCancelarvbKeyMButton 0x4 BotónizquierdodelmousevbKeyBack 0x8 TeclaRetrocesovbKeyTab 0x9 TeclaTabvbKeyClear 0xC TeclaSuprvbKeyReturn 0xD TeclaEntrarvbKeyShift 0x10 TeclaMayúsvbKeyControl 0x11 TeclaCtrlvbKeyMenu 0x12 TeclaMenúvbKeyPause 0x13 TeclaPausavbKeyCapital 0x14 TeclaBloqMayúsvbKeyEscape 0x1B TeclaEscvbKeySpace 0x20 TeclaBarraespaciadora
vbKeyPageUp 0x21 TeclaRePágvbKeyPageDown 0x22 TeclaAvPágvbKeyEnd 0x23 TeclaFinvbKeyHome 0x24 TeclaIniciovbKeyLeft 0x25 TeclaFlechaizquierdavbKeyUp 0x26 TeclaFlechaarribavbKeyRight 0x27 TeclaFlechaderechavbKeyDown 0x28 TeclaFlechaabajovbKeySelect 0x29 TeclaSeleccionarvbKeyPrint 0x2A TeclaImprPantvbKeyExecute 0x2B TeclaEjecutarvbKeySnapshot 0x2C TeclaImprPantvbKeyInsert 0x2D TeclaInsertvbKeyDelete 0x2E TeclaSuprvbKeyHelp 0x2F TeclaAyudavbKeyNumlock 0x90 TeclaBloqNum
LasteclasdeAaZsonlasmismasquesusequivalentesASCIIdeAaZ:
Constante Valor DescripciónvbKeyA 65 TeclaAvbKeyB 66 TeclaBvbKeyC 67 TeclaCvbKeyD 68 TeclaDvbKeyE 69 TeclaEvbKeyF 70 TeclaFvbKeyG 71 TeclaGvbKeyH 72 TeclaHvbKeyI 73 TeclaIvbKeyJ 74 TeclaJvbKeyK 75 TeclaKvbKeyL 76 TeclaL
vbKeyM 77 TeclaMvbKeyN 78 TeclaNvbKeyO 79 TeclaOvbKeyP 80 TeclaPvbKeyQ 81 TeclaQvbKeyR 82 TeclaRvbKeyS 83 TeclaSvbKeyT 84 TeclaTvbKeyU 85 TeclaUvbKeyV 86 TeclaVvbKeyW 87 TeclaWvbKeyX 88 TeclaXvbKeyY 89 TeclaYvbKeyZ 90 TeclaZ
Lasteclasde0a9sonlasmismasquesusequivalentesASCIIde0a9:
Constante Valor DescripciónvbKey0 48 Tecla0vbKey1 49 Tecla1vbKey2 50 Tecla2vbKey3 51 Tecla3vbKey4 52 Tecla4vbKey5 53 Tecla5vbKey6 54 Tecla6vbKey7 55 Tecla7vbKey8 56 Tecla8vbKey9 57 Tecla9
Lassiguientesconstantesrepresentanteclaseneltecladonumérico:
Constante Valor DescripciónvbKeyNumpad0 0x60 Tecla0vbKeyNumpad1 0x61 Tecla1vbKeyNumpad2 0x62 Tecla2vbKeyNumpad3 0x63 Tecla3vbKeyNumpad4 0x64 Tecla4vbKeyNumpad5 0x65 Tecla5vbKeyNumpad6 0x66 Tecla6vbKeyNumpad7 0x67 Tecla7vbKeyNumpad8 0x68 Tecla8vbKeyNumpad9 0x69 Tecla9vbKeyMultiply 0x6A TeclaSignode
multiplicación(*)vbKeyAdd 0x6B TeclaSignomás(+)vbKeySeparator 0x6C TeclaEntrarvbKeySubtract 0x6D TeclaSignomenos(–)vbKeyDecimal 0x6E TeclaPuntodecimal(,)vbKeyDivide 0x6F TeclaSignodedivisión(/)
Lassiguientesconstantesrepresentanteclasdefunción:
Constante Valor DescripciónvbKeyF1 0x70 TeclaF1vbKeyF2 0x71 TeclaF2vbKeyF3 0x72 TeclaF3vbKeyF4 0x73 TeclaF4vbKeyF5 0x74 TeclaF5vbKeyF6 0x75 TeclaF6vbKeyF7 0x76 TeclaF7vbKeyF8 0x77 TeclaF8vbKeyF9 0x78 TeclaF9
vbKeyF10 0x79 TeclaF10vbKeyF11 0x7A TeclaF11vbKeyF12 0x7B TeclaF12vbKeyF13 0x7C TeclaF13vbKeyF14 0x7D TeclaF14vbKeyF15 0x7E TeclaF15vbKeyF16 0x7F TeclaF16
Constantesdeentrada/salidadearchivo
Estasconstantessóloestándisponiblescuandosuproyectotieneunareferenciaexplícitaalabibliotecadetiposapropiadaquecontengaestasdefinicionesdeconstantes.
Constante Valor DescripciónForReading 1 Abrirunarchivosóloparalectura.Nopuede
escribirenestearchivo.ForWriting 2 Abrirunarchivoparaescritura.Siexisteunarchivo
conelmismonombre,seescribesobresuanteriorcontenido.
ForAppending 8 Abrirunarchivoyescribirhastaelfinaldelarchivo.
Constantesdefecha
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Valoresdeargumento
Elargumentofirstdayofweektienelossiguientesvalores:
Constante Valor DescripciónvbUseSystem 0 UtilizaelvalordeAPI
NLS.VbSunday 1 Domingo(predeterminado)vbMonday 2 LunesvbTuesday 3 MartesvbWednesday 4 MiércolesvbThursday 5 JuevesvbFriday 6 ViernesvbSaturday 7 Sábado
Elargumentofirstdayofyeartienelossiguientesvalores:
Constante Valor Descripción
vbUseSystem 0 UtilizaelvalordeAPINLS.VbUseSystemDayOfWeek
0 Utilizaeldíadelasemanaespecificadoenlaconfiguracióndelsistemaparaelprimerdíadelasemana.
VbFirstJan1 1 Comienzaconlasemanadondeestáel1deenero(predeterminado)
vbFirstFourDays 2 Comienzaconlaprimerasemanadelañoquetengacuatrodíascomomínimo.
vbFirstFullWeek 3 Comienzaconlaprimerasemanacompletadelaño.
Valoresdevueltos
Constante Valor DescripciónvbSunday 1 DomingovbMonday 2 LunesvbTuesday 3 MartesvbWednesday 4 MiércolesvbThursday 5 JuevesvbFriday 6 ViernesvbSaturday 7 Sábado
Constantesdeformatodefecha
Estasconstantessóloestándisponiblescuandosuproyectotieneunareferenciaexplícitaalabibliotecadetiposapropiadaquecontengaestasdefinicionesdeconstante.
Constante Valor DescripciónvbGeneralDate 0 Muestraunafechay/ohora.Paranúmerosreales,
muestraunafechayhora.Sinohaypartefraccionaria,sólomuestraunafecha.Sinohayparteentera,sólomuestralahora.Laconfiguracióndesusistemadeterminalapresentacióndefechayhora.
vbLongDate 1 Muestraunafechautilizandoelformatodefechalargoespecificadoenlaconfiguraciónregionaldesuequipo.
vbShortDate 2 Muestraunafechautilizandoelformatodefechacortoespecificadoenlaconfiguraciónregionaldesuequipo.
vbLongTime 3 Muestraunahorautilizandoelformatodefechalargoespecificadoenlaconfiguraciónregionaldesuequipo.
vbShortTime 4 Muestraunahorautilizandoelformatodehora
cortoespecificadoenlaconfiguraciónregionaldesuequipo.
Constantesdetipodeunidad
Estasconstantessóloestándisponiblescuandosuproyectotieneunareferenciaexplícitaalabibliotecadetiposapropiadaquecontengaestasdefinicionesdeconstantes.
Constante Valor DescripciónUnknown 0 Eltipodeunidadnosepuededeterminar.Removable 1 Launidadtienemediosseparables.Estoincluye
todaslasunidadesdedisqueteymuchasotrasvariedadesdedispositivosdealmacenamiento.
Fixed 2 Launidadtienemediosfijos(noseparables).Estoincluyetodaslasunidadesdediscoduro,incluyendolasunidadesdediscoduroseparables.
Remote 3 Unidadesdered.Estoincluyeunidadescompartidasencualquierparteenunared.
CDROM 4 LaunidadesunCD-ROM.NosehacedistinciónentrelasunidadesdeCD-ROMdelecturayescrituraylasdesólolectura.
RAMDisk 5 LaunidadesunbloquedeMemoriadeAccesoAleatorio(RAM,RandomAccesMemory)enelequipolocalquesecomportacomounaunidaddedisco.
Constantesdelcompilador
VisualBasicparaAplicacionesdefineconstantesparausoexclusivoconladirectiva#If...Then...#Else.Estasconstantessonfuncionalmenteequivalentesalasconstantesdefinidasconladirectiva#If...Then...#Elseexceptoquesondealcanceglobal;esdecir,seaplicanatodoelproyecto.
Enplataformasdeprogramaciónde16bits,lasconstantesdelcompiladorsedefinendelasiguienteforma:
Constante Valor DescripciónWin16 True Indicaqueelentornodeprogramaciónesde16
bits.Win32 False Indicaqueelentornodeprogramaciónnoesde32
bits.
Enplataformasdeprogramaciónde32bits,lasconstantesdelcompiladorse
definendelasiguienteforma:
Constante Valor DescripciónVba6 True IndicaqueelentornodeprogramaciónesVisual
BasicparaAplicaciones,versión6.0.Vba6 False IndicaqueelentornodeprogramaciónesVisual
BasicparaAplicaciones,versión6.0.Win16 False Indicaqueelentornodeprogramaciónnoesde16
bits.Win32 True Indicaqueelentornodeprogramaciónesde32
bits.Mac False Indicaqueelentornodeprogramaciónnoes
Macintosh.Win16 False Indicaqueelentornodeprogramaciónnoesde16
bits.Win32 False IndicaqueelentornodeprogramaciónesWindows
de32bits.Mac True Indicaqueelentornodeprogramaciónes
Macintosh.
NotaPuestoqueesVisualBasicelqueproporcionaestasconstantes,nopuededefinirenningúnnivelsuspropiasconstantesquetenganestosmismosnombres.
Constantesdetripleestado
Estasconstantessóloestándisponiblescuandosuproyectotieneunareferenciaexplícitaalabibliotecadetiposapropiadaquecontengaestasdefinicionesdeconstantes.
Constante Valor DescripciónvbTrue –1 Verdadero.vbFalse 0 Falso.vbUseDefault –2 Utilizarvalorpredeterminado.
ConstantesdeVisualBasic
VisualBasicparaaplicacionesdefineconstantesparasimplificarlaprogramación.Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Calendar(constantes)
CallType(constantes)
Constantesdeatributosdearchivo
ConstantesdeCarpetasEspeciales
Constantesdecódigodeteclas
Constantesdecolor
Constantesdecolordelsistema
Constantesdecomparación
Constantesdeentrada/salidadearchivos
Constantesdefecha
Constantesdeformatodefecha
Constantesdeformulario
ConstantesdeTipoUnidad
ConstantesdeTripleEstado
ConstantesdeVisualBasic
Constantesdelcompilador
Dir,GetAttrySetAttr(constantes)
IMEStatus(constantes)
MsgBox(constantes)
Otrasconstantes
QueryClose(constantes)
Shell(constantes)
StrConv(constantes)
VarType(constantes)
Dir,GetAttrySetAttr(constantes)
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbNormal 0 Normal(valor
predeterminadoparaDirySetAttr)
vbReadOnly 1 DesólolecturavbHidden 2 OcultovbSystem 4 ArchivodesistemavbVolume 8 EtiquetadevolumenvbDirectory 16 DirectorioocarpetavbArchive 32 Elarchivohacambiado
desdelaúltimacopiadeseguridad
vbAlias 64 EnMacintosh,elidentificadoresunalias
SólolasconstantesVbNormal,vbReadOnly,vbHiddenyvbAliasestándisponiblesparaMacintosh.
IMEStatus(constantes)
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales.
Laconstantesparalaconfiguraciónregionaljaponesasonlassiguientes:
Constante Valor DescripciónvbIMEModeNoControl 0 SincontrolIME
(predeterminado)vbIMEModeOn 1 IMEactivadovbIMEModeOff 2 IMEdeactivadovbIMEModeDisable 3 IMEdeshabilitadovbIMEModeHiragana 4 ModoHiraganadeancho
completovbIMEModeKatakana 5 ModoKatakanadeancho
completovbIMEModeKatakanaHalf 6 ModoKatakanademitad
deanchovbIMEModeAlphaFull 7 ModoAlfanuméricode
anchocompletovbIMEModeAlpha 8 ModoAlfanuméricode
mitaddeancho
Losvaloresdeconstanteparalaconfiguraciónlocalcoreanasonlossiguientes:
Constante Valor DescripciónvbIMEModeNoControl 0 SincontrolIME
(predeterminado)vbIMEModeAlphaFull 7 ModoAlfanuméricode
anchocompletovbIMEModeAlpha 8 ModoAlfanuméricode
mitaddeanchovbIMEModeHangulFull 9 ModoHanguldeancho
completovbIMEModeHangul 10 ModoHanguldemitadde
ancho
Losvaloresdeconstanteparalaconfiguraciónregionalchinasonlossiguientes:
Constante Valor DescripciónvbIMEModeNoControl 0 SincontrolIME
(predeterminado)vbIMEModeOn 1 IMEactivadovbIMEModeOff 2 IMEdesactivado
MsgBox(constantes)
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
ArgumentosdeMsgBox
Constante Valor DescripciónvbOKOnly 0 SóloelbotónAceptar
(predeterminado)vbOKCancel 1 LosbotonesAceptaryCancelarvbAbortRetryIgnore 2 LosbotonesAnular,Reintentare
IgnorarvbYesNoCancel 3 LosbotonesSí,NoyCancelar.VbYesNo 4 LosbotonesSíyNovbRetryCancel 5 LosbotonesReintentaryCancelarvbCritical 16 MensajecríticovbQuestion 32 ConsultadeadvertenciavbExclamation 48 MensajedeadvertenciavbInformation 64 MensajedeinformaciónvbDefaultButton1 0 Elprimerbotóneselpredeterminado
(predeterminado)
vbDefaultButton2 256 ElsegundobotóneselpredeterminadovbDefaultButton3 512 EltercerbotóneselpredeterminadovbDefaultButton4 768 ElcuartobotóneselpredeterminadovbApplicationModal 0 Cuadrodemensajesdeaplicación
modal(valorpredeterminado)vbSystemModal 4096 CuadrodemensajesmodaldelsistemavbMsgBoxHelpButton 16384 AgregaelbotónAyudaalcuadrode
mensajeVbMsgBoxSetForeground 65536 Especificalaventanadelcuadrode
mensajecomolaventanadeprimerplano
vbMsgBoxRight 524288 EltextosealineaaladerechavbMsgBoxRtlReading 1048576 Especificaqueeltextodebeaparecer
paraleerdederechaaizquierdaensistemashebreosyárabes
ValoresdevueltosporMsgBox
Constante Valor DescripciónvbOK 1 BotónAceptarpresionadovbCancel 2 BotónCancelar
presionadovbAbort 3 BotónAnularpresionadovbRetry 4 BotónReintentar
presionadovbIgnore 5 BotónIgnorarpresionadovbYes 6 BotónSípresionadovbNo 7 BotónNopresionado
Otras
constantes
LassiguientesconstantesestándefinidasenlabibliotecadetiposdeVisualBasicparaAplicacionesysepuedenutilizarencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Equivalente DescripciónvbCrLf Chr(13)+Chr(10) Combinaciónderetornodecarroy
avancedelíneavbCr Chr(13) CarácterderetornodecarrovbLf Chr(10) CarácterdeavancedelíneavbNewLine Chr(13)+Chr(10)o,
enMacintosh,Chr(13)
Carácterdeavancedelíneaespecíficodeplataforma;siemprequeseaválidoparalaplataformaactual
vbNullChar Chr(0) Carácterquetieneelvalor0vbNullString Cadenaconelvalor0 Noeslomismoqueunacadenade
longitudcero("");seutilizaparallamaraprocedimientosexternos
vbObjectError -2147221504 Losnúmerosdeerrordefinidosporelusuariodeberíansermayoresqueestevalor.Porejemplo:Err.RaiseNumber=vbObjectError+
1000
vbTab Chr(9) CarácterdetabuladorvbBack Chr(8) CarácterderetrocesovbFormFeed Chr(12) NoesútilenMicrosoftWindowsoen
MacintoshvbVerticalTab Chr(11) NoesútilenMicrosoftWindowsoen
Macintosh
QueryClose(constantes)
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbFormControlMenu 0 ElusuarioeligeelcomandoCerrardel
menúControlenelformulario.vbFormCode 1 SeinvocalainstrucciónUnloaddesde
código.vbAppWindows 2 Estáterminandolasesiónactualdel
entornooperativoMicrosoftWindows.vbAppTaskManager 3 ElAdministradordetareasdeWindows
estácerrandolaaplicación.
Shell(constantes)
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbHide 0 Laventanaseocultayelenfoquepasaa
laventanaoculta.VbNormalFocus 1 Laventanatieneelenfoqueyse
restauraasutamañoyposiciónoriginales.
VbMinimizedFocus 2 Laventanasemuestraenformadeiconoconelenfoque.
VbMaximizedFocus 3 Laventanasemaximizaconelenfoque.VbNormalNoFocus 4 Laventanaserestauraasutamañoy
posiciónmásrecientes.Laventanaactivaactualmentepermaneceactiva.
VbMinimizedNoFocus 6 Laventanasemuestraenformadeicono.Laventanaactivaactualmentepermaneceactiva.
EnMacintosh,vbNormalFocus,vbMinimizedFocusyvbMaximizedFocuscolocanlaaplicaciónenprimerplano;vbHide,vbNoFocus,
vbMinimizedFocuscolocanlaaplicaciónenelfondo.
StrConv(constantes)
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbUpperCase 1 Conviertelacadenaenmayúsculas.vbLowerCase 2 Conviertelacadenaenminúsculas.vbProperCase 3 Poneenmayúsculalaprimeraletradecada
palabradelacadena.vbWide 4 Loscaracteresestrechos(unsolobyte)se
conviertenencaracteresanchos(dedoblebyte).SeaplicaaconfiguracionesregionalesdelLejanoOriente
vbNarrow 8 Loscaracteresanchos(dedoblebyte)seconviertenencaracteresestrechos(deunsolobyte).Seaplicaaconfiguraciones
regionalesdelLejanoOriente.vbKatakana 16 LoscaracteresHiraganadeunacadenase
conviertenencaracteresKatakana.SóloseaplicaenJapón.
vbHiragana 32 LoscaracteresKatakanadeunacadenaseconviertenencaracteresHiragana.SóloseaplicaenJapón.
vbUnicode 64 ConviertelacadenaaUnicodeutilizandolapáginadecódigospredeterminadadelsistema.(NodisponibleparaMacintosh.)
vbFromUnicode 128 ConviertelacadenadesdeUnicodealapáginadecódigospredeterminadadelsistema.(NodisponibleparaMacintosh.)
VarType(constantes)
Sepuedenutilizarlassiguientesconstantesencualquierlugardelcódigoenvezdelosvaloresreales:
Constante Valor DescripciónvbEmpty 0 Sininicializar(predeterminado)vbNull 1 NocontienedatosválidosvbInteger 2 IntegervbLong 3 EnterolargovbSingle 4 Númerodesignoflotantedeprecisión
simplevbDouble 5 NúmerodesignoflotantedeprecisióndoblevbCurrency 6 CurrencyvbDate 7 DatevbString 8 StringvbObject 9 ObjetovbError 10 ErrorvbBoolean 11 BooleanvbVariant 12 Variant(sóloseutilizaparamatricesde
variants)vbDataObject 13 ObjetodeaccesoadatosvbDecimal 14 DecimalvbByte 17 BytevbUserDefinedType 36 Variantsquecontienentiposdefinidosporel
usuariovbArray 8192 Matriz
#Const(Directiva)
SeutilizaparadefinirconstantesdecompilacióncondicionalparaVisualBasic.
Sintaxis
#Constconstante=expresión
Lasintaxisdeladirectivadecompilación#Constconstadelassiguientespartes:
Parte Descripciónconstante Serequiere;Variant(String).Nombredelaconstante;siguelas
convencionesestándardenombresdevariable.expresión Requerido.Literal,otraconstantedecompilacióncondicionalo
cualquiercombinaciónqueincluyaoperadoresaritméticosológicos,exceptoIs.
Comentarios
LasconstantesdecompilacióncondicionalsonsiempredetipoPrivateparaelmóduloenqueaparecen.NoesposiblecrearconstantesdecompilacióndetipoPublicconladirectiva#Const.LasconstantesdecompilacióndetipoPublicsolamentesepuedencreardesdelainterfazdeusuario.
Enexpresiónsolamentesepuedenutilizarconstantesdecompilacióncondicional(yliterales).ElusodeunaconstanteestándardefinidaconConstodeunaconstantenodefinidaproduciráunerror.Alainversa,lasconstantesdefinidasconlapalabraclave#Constsolamentesepuedenutilizarparacompilacióncondicional.
Lasconstantesdecompilacióncondicionalsiempreseevalúananiveldemóduloindependientementedesuubicaciónenelcódigo.
#If...Then...#Else(Directiva)
CompilacondicionalmentebloquesdecódigodeVisualBasicseleccionados.
Sintaxis
#IfexpresiónThen
instrucciones
[#ElseIfexpresión-nThen
[instrucciones_elseif]]
[#Else
[instrucciones_else]]
#EndIf
Lasintaxisdeladirectiva#If...Then...#Elseconstadelassiguientespartes:
Parte Descripciónexpresión Requerido.Cualquierexpresión,formada
exclusivamenteporunaomásconstantesdecompilacióncondicional,literalesyoperadores,queseevalúacomoTrueoFalse.
instrucciones Requerido.LíneasdeprogramadeVisualBasicodirectivasdecompilaciónqueseevaluaránsisuexpresiónasociadadacomoresultadoTrue.
expresión-n Opcional.Cualquierexpresiónformadaexclusivamenteporunaomásconstantesdecompilacióncondicional,literalesyoperadores,queseevalúacomoTrueoFalse.
instrucciones_elseif Opcional.Unaomáslíneasdeprogramaodirectivasdecompilaciónqueseevalúansiexpresión-ndacomoresultadoTrue.
instrucciones_else Opcional.Unaomáslíneasdeprogramaodirectivasdecompilaciónqueseevalúansiningunaexpresiónoexpresión-nanteriordacomoresultadoTrue.
Comentarios
Elcomportamientodeladirectiva#If...Then...#ElseesanálogoaldelainstrucciónIf...Then...Else,exceptoenquenoexistelaformadeunaúnicalíneaparalasdirectivas#If,#Else,#ElseIfy#EndIf;esdecir,enlamismalíneadeunadeestasdirectivasnopuedeaparecerotrocódigo.Lacompilacióncondicionalseutilizahabitualmenteparacompilarelmismoprogramaenplataformasdistintas.Tambiénseutilizaparaevitarqueelcódigodedepuraciónaparezcaenlosarchivosejecutables.Elcódigoexcluidoduranteuna
compilacióncondicionalseomitecompletamenteenelarchivoejecutablefinal,demodoquenotieneningúnefectoeneltamañonienelrendimiento.
Independientementedelautilizacióndelasexpresiones,todasellasseevalúan.Portanto,todaslasconstantesutilizadasenlasexpresionessedebenhaberdefinido.LasconstantesnodefinidasseevalúancomoEmpty.
NotaLainstrucciónOptionComparenoafectaalasexpresionesdelasinstrucciones#Ify#ElseIf.LasexpresionesdelasdirectivasdecompilacióncondicionalsiempreseevalúanconOptionCompareText.
Activate,Deactivate(Eventos)
EleventoActivateseproducecuandounobjetopasaaserlaventanaactiva.EleventoDeactivateseproducecuandounobjetoyanoeslaventanaactiva.
Sintaxis
PrivateSubobjeto_Activate()
PrivateSubobjeto_Deactivate()
ElmarcadordeposiciónobjetorepresentaunaexpresióndeobjetoquequedacomoresultadounobjetoincluidoenlalistaSeaplicaa.
Comentarios
UnobjetopuedepasaraactivoutilizandoelmétodoShowencódigo.
EleventoActivatesepuedeproducirsólocuandounobjetoesvisible.UnUserFormcargadoconLoadnoesvisibleamenosqueutiliceelmétodoShow.
LoseventosActivateyDeactivateseproducensólocuandomueveelenfoquedentrodeunaaplicación.Moverelenfoqueaodesdeunobjetoenotraaplicaciónnoactivaningúnevento.
EleventoDeactivatenoseproducecuandodescargaunobjeto.
Initialize(Evento)
Seproducedespuésdequesecargaunobjeto,peroantesdequesemuestre.
Sintaxis
PrivateSubobject_Initialize()
ElmarcadordeposiciónobjetorepresentaunaexpresióndeobjetoquequedacomoresultadounobjetoincluidoenlalistaSeaplicaa.
Comentarios
EleventoInitializeseutilizanormalmenteparaprepararseautilizarunaaplicaciónounobjetoUserForm.Seasignanunosvaloresinicialesalasvariablesysepuedenmoverocambiareltamañodeloscontrolesparaadecuarlosalosdatosdeinicialización.
Resize(Evento)
SeproducecuandounobjetoUserFormsecambiadetamaño.
Sintaxis
PrivateSubUserForm_Resize()
Comentarios
UtiliceelprocedimientodeeventoResizeparamoverocambiareltamañode
controlescuandosecambiaeltamañodelobjetoUserFormprimario.Tambiénpuedeutilizaresteprocedimientodeeventoparavolveracalcularvariablesopropiedades.
Terminate(Evento)
SeproducecuandosequitandememoriatodaslasreferenciasaunainstanciadeunobjetoestableciendotodaslasvariablesquehacenreferenciaalobjetoaNothingocuandolaúltimareferenciaalobjetosaledelalcance.
Sintaxis
PrivateSubobjeto_Terminate()
Elmarcadordeposiciónobjetorepresentaunaexpresióndeobjetoquequeda
comoresultadounobjetoincluidoenlalistaSeaplicaa.
Comentarios
EleventoTerminateseproducedespuésdequesedescargaelobjeto.EleventoTerminatenoseactivasisequitandememorialasinstanciasdelUserFormolaclaseporquelaaplicaciónfinalizadeformaanormal.Porejemplo,silaaplicaciónllamaalainstrucciónEndantesdequitardememoriatodaslasinstanciasexistentesdelaclaseodelUserForm,eleventoTerminatenoseactivaparaesaclaseoUserForm.
Abs(Función)
Devuelveunvalordelmismotipoqueelquesepasócomoparámetroyqueespecificaelvalorabsolutodeunnúmero.
Sintaxis
Abs(número)
Elargumentonúmeropuedesercualquierexpresiónnuméricaválida.SinúmerocontieneNull,lafuncióndevolveráNull;siesunavariablenoinicializada,
devolverácero.
Comentarios
Elvalorabsolutodeunnúmeroessumagnitudsinsigno.Porejemplo,ABS(-1)yABS(1)devuelven1.
Array(Función)
Devuelveunavariantequecontieneunamatriz.
Sintaxis
Array(lista_argumentos)
Elargumentolista_argumentosrequeridoesunalistadevaloresdelimitadosporcomasqueseasignanaloselementosdelamatrizcontenidaeneltipoVariant.Sinoseespecificaningúnargumento,secreaunamatrizdelongitudcero.
Comentarios
Lanotaciónusadaparahacerreferenciaacualquierelementodeunamatrizconsisteenelnombredelavariableseguidoporunparéntesisquecontieneunnúmerodeíndiceparaelelementodeseado.Enelejemplosiguiente,laprimerainstruccióncreaunavariablellamadaAdetipoVariant.LasegundainstrucciónasignaunamatrizalavariableA.Laúltimainstrucciónasignaaotravariableelvalorcontenidoenelsegundoelementodelamatriz.
DimAAsVariant
A=Array(10,20,30)
B=A(2)
EllímiteinferiordeunamatrizcreadamediantelafunciónArraysedeterminaporellímiteinferiorespecificadoconlainstrucciónOptionBase,amenosqueArrayestéautorizadoconelnombredelabibliotecatipo(porejemploVBA.Array).Siseautorizaconelnombredelabibliotecatipo,ArraynoseveráafectadoporOptionBase.
NotaUnavariableVariantnodeclaradacomounamatrizpuedecontener,noobstante,unamatriz.UnavariableVariantpuedecontenerunamatrizdecualquiertipo,exceptocadenasdelongitudfijaytiposdefinidosporelusuario.AunqueunavariableVariantquecontieneunamatrizesconceptualmentediferentedeunamatrizcuyoselementossondetipoVariant,setieneaccesoaloselementosdelamatrizdelmismomodo.
Asc(Función)
DevuelveuntipoIntegerquerepresentaelcódigodecaráctercorrespondientealaprimeraletradeunacadena.
Sintaxis
Asc(cadena)
Elargumentoobligatoriocadenaesunaexpresióndecadenaválida.Sicadenanocontienecaracteres,seproduceunerrorentiempodeejecución.
Comentarios
Elintervalodelvalorderetornoesentre0y255ensistemasquenoseanDBCS,yentre–32768y32767ensistemasDBCS.
NotaLafunciónAscBseutilizaconbytesdedatoscontenidosenunacadena.Enlugardedevolverelcódigodecarácterparaelprimercarácter,AscBdevuelveelprimerbyte.LafunciónAscWsiempredevuelveelcódigodecarácterUnicodeenplataformasdondenoseadmiteUnicode,encuyocaso,elcomportamientoesidénticoaldelafunciónAsc.
NotaVisualBasicparaMacintoshnoescompatibleconcadenasUnicode.Portanto,AscW(n)nopuededevolvertodosloscaracteresUnicodeparanvaloresenelintervalode128–65,535,quesípuedeenelentornoWindows.Encambio,AscW(n)intentalamejorsoluciónparavaloresUnicodenmayoresde127.Portanto,nodeberíautilizarAscWenelentornoMacintosh.
Atn(Función)
DevuelveuntipoDoublequeespecificaelarcotangentedeunnúmero.
Sintaxis
Atn(número)
ElargumentonúmeroesuntipoDoubleocualquierexpresiónnuméricaválida.
Comentarios
LafunciónAtntomalarazóndedosladosdeuntriángulorectángulo(número)ydevuelveelángulocorrespondienteenradianes.Larazóneslalongituddelladoopuestoalángulodivididaporlalongituddelladoadyacentealángulo.
Elángulodelresultadoes-pi/2api/2radianes.
Paraconvertirgradosenradianes,multipliquelosgradosporPI/180.Paraconvertirradianesengrados,multipliquelosradianespor180/pi.
NotaAtneslafuncióntrigonométricainversadeTan,quetomaunánguloysuargumentoydevuelvelarazóndedosladosdeuntriángulorectángulo.Noconfundaconlacotangente,queeselinversodelatangente(1/tangente).
Choose(Función)
Seleccionaydevuelveunvalordeunalistadeargumentos.
Sintaxis
Choose(índice,opción-1[,opción-2,...[,opción-n]])
LasintaxisdelafunciónChooseconstadelassiguientespartes:
Parte Descripcióníndice Requerido.Expresiónnuméricaocampoquedacomoresultadoun
valorentre1yelnúmerodeopcionesdisponibles.opción Requerido.ExpresióndeltipoVariantquecontieneunadelas
opcionesposibles.
Comentarios
LafunciónChoosedevuelveunvalordelalistadeopcionesdependiendodelvalordeíndice.Siíndicees1,lafunciónChoosedevolverálaprimeraopcióndelalista;siíndicees2,devolverálasegundayasísucesivamente.
PuedeutilizarlafunciónChooseparabuscarunvalorenunalistadeposibilidades.Porejemplo,siíndicedacomoresultado3yopción-1="uno",opción-2="dos"yopción-3="tres",lafunciónChoosedevuelve"tres".Estafuncionalidadesespecialmenteútilcuandoíndicerepresentaelvalorenungrupodeopción.
LafunciónChooseevalúatodaslasopcionesdelalista,aunquesólodevuelvauna.Porestarazón,debecomprobarquenoseproduciránefectosnodeseados.Porejemplo,siutilizalafunciónMsgBoxcomopartedeunaexpresiónentodaslasopciones,apareceráuncuadrodemensajeparacadaopciónenelmomentodeevaluarla,aunquelafunciónChoosesólovayaadevolverelvalordeunadeellas.
LafunciónChoosedevuelveNullsiíndiceesmenorque1omayorqueelnúmerodeopcionesdelalista.
Siíndicenoesunnúmeroentero,seredondearáalenteromáscercanoantesdesuevaluación.
Chr(Función)
DevuelveuntipoStringquecontieneelcarácterasociadoconelcódigodecarácterespecificado.
Sintaxis
Chr(códigocar)
ElargumentocódigocaresuntipoLongqueidentificaauncarácter.
Comentarios
Losnúmerosdel0al31sonlosmismosqueloscódigosASCIIestándarnoimprimibles.Porejemplo,Chr(10)devuelveuncarácterdeavancedelínea.Elintervalonormaldecódigocares0–255.Sinembargo,ensistemasDBCS,elintervalorealdecódigocaresde-32768a65535.
NotaLafunciónChrBseutilizacondatosdebyteincluidosenuntipoString.Enlugardedevolveruncarácter,quepuedeserdeunoodedosbytes,ChrBsiempredevuelveunúnicobyte.LafunciónChrWdevuelveuntipoStringquecontieneelcarácterUnicodeexceptoenplataformasdondenoseadmiteUnicode,encuyocaso,elcomportamientoesidénticoaldelafunciónChr.
NotaVisualBasicparaMacintoshnoadmitecadenasUnicode.Porlotanto,ChrW(n)nopuededevolvertodosloscaracteresUnicodeparanvaloresenelintervalo128–65,535,quesípuedeenelentornoWindows.Sinembargo,ChrW(n)intentalamejorsoluciónparavaloresnUnicodemayoresde127.Portanto,nodeberíausarChrWenelentornoMacintosh.
Command(Función)
DevuelvelapartedelargumentodelalíneadecomandoutililizadaparaejecutarMicrosoftVisualBasicounprogramaejecutabledesarrolladoconVisualBasic.LafunciónCommanddeVisualBasicnoestádisponibleenaplicacionesdeMicrosoftOffice.
Sintaxis
Command
Comentarios
CuandoVisualBasicesejecutadodesdelalíneadecomando,unapartedelalíneadecomandoquesiguea/cmdespasadaalprogramacomoelargumentodelalíneadecomando.Enelsiguienteejemplo,argslíneacomandorepresentalainformacióndelargumentodevueltoporlafunciónCommand.
VB/cmdargslíneacomando
ParaaplicacionesdesarrolladasconVisualBasicycompiladasparaobtenerunarchivo.exe,Commanddevuelveunosargumentosqueaparecendespuésdelnombredelaaplicaciónenlalíneadecomandos.Porejemplo:
MiAplargslíneacomando
Paraencontrarcómolosargumentosdelalíneadecomandopuedensercambiadosenlainterfazdeusuariodelaaplicaciónqueestáutilizando,busqueellaAyuda"argumentosdelalíneadecomandos."
Cos(Función)
DevuelveuntipoDoublequeespecificaelcosenodeunángulo.
Sintaxis
Cos(número)
ElargumentonúmeroesuntipoDoubleocualquierexpresiónnuméricaválidaqueexpresaunánguloenradianes.
Comentarios
LafunciónCostomaunánguloydevuelvelarazóndedosladosdeuntriángulorectángulo.Larazóneslalongituddelladoadyacentealángulodivididaporlalongituddelahipotenusa.
Elresultadoestádentrodelintervalo-1a1.
Paraconvertirgradosenradianes,multipliquelosgradosporpi/180.Paraconvertirradianesengrados,multipliquelosradianespor180/pi.
CreateObject(Función)
CreaydevuelveunareferenciaaunobjetoActiveX.
Sintaxis
CreateObject(clase,[nombre_servidor])
LasintaxisdelafunciónCreateObjectcontienetrespartes:
Parte Descripciónclase Requerido;Variant(Cadena).Elnombredelaaplicaciónyde
laclasedelobjetoquesevaacrear.nombre_sevidor Opcional;Variant(Cadena).Elnombredelservidordered
dondesecrearáelobjeto.Sinombre_servidoresunacadenavacía(""),seutilizalamáquinalocal.
Elargumentoclaseutilizalasintaxisnombre_aplicación.tipo_objetoyconstadelassiguientespartes:
Parte DescripciónNombre_aplicación
Requerido;Variant(String).Elnombredelaaplicaciónqueproporcionaelobjeto.
tipo_objeto
Requerido;Variant(String).Eltipooclasedeobjetoquesevaacrear.
Comentarios
CadaaplicaciónqueadmiteAutomatizaciónproporcionaalmenosuntipodeobjeto.Porejemplo,unaaplicacióndeprocesadordetextospuedeproporcionarunobjetoApplication,unobjetoDocumentyunobjetoToolbar.
ParacrearunobjetoActiveX,asigneelobjetodevueltoporlafunciónCreateObjectaunavariabledeobjeto:
'Declareunavariabledeobjetoparacontenerlareferenciade
'objeto.DimAsObjectprovocaunenlaceentiempodeejecución.
DimExcelSheetAsObject
SetExcelSheet=CreateObject("Excel.Hoja")
Estecódigoinicialaaplicacióncreandoelobjeto(enestecaso,unahojadecálculodeMicrosoftExcel).Unavezcreadounobjeto,hagareferenciaaélenelcódigomediantelavariabledeobjetoquedefinió.Enelsiguienteejemplotieneaccesoalaspropiedadesylosmétodosdelnuevoobjetomediantelavariabledeobjeto,ExcelSheet,yotrosobjetosdeMicrosoftExcel,incluyendoelobjetoApplicationylacolecciónCells.
'HacevisibleExcelmedianteelobjetoApplication
ExcelSheet.Application.Visible=True
'Colocaalgúntextoenlaprimeraceldadelahoja
ExcelSheet.Application.Cells(1,1).Value="EstoeslacolumnaA,fila1"
'GuardalahojaeneldirectorioC:\test.xls
ExcelSheet.SaveAs"C:\TEST.XLS"
'CierraExcelconelmétodoQuitenelobjetoApplication
ExcelSheet.Application.Quit
'Liberalavariabledeobjeto.
SetExcelSheet=Nothing
AldeclararunavariabledeobjetoconlacláusulaAsObjectsecreaunavariablequepuedecontenerunareferenciaacualquiertipodeobjeto.Sinembargo,elaccesoalobjetomedianteestavariableesunenlaceentiempodeejecución,esdecir,elenlaceseproducecuandoseejecutaelprograma.Paracrearunavariabledeobjetoqueproduzcaunenlaceentiempodediseño(esdecir,queelenlaceseproduzcacuandosecompileelprograma),declarelavariabledeobjetoconundeterminadoId.declase.Porejemplo,puededeclararycrearlassiguientesreferenciasdeMicrosoftExcel:
DimxlAppAsExcel.Application
DimxlBookAsExcel.Workbook
DimxlSheetAsExcel.WorkSheet
SetxlApp=CreateObject("Excel.Application")
SetxlBook=xlApp.Workbooks.Add
SetxlSheet=xlBook.Worksheets(1)
Lareferenciamedianteunavariabledeenlaceentiempodediseñopuedeproporcionarmejorrendimiento,perosólopuedecontenerunareferenciaalaclaseespecificadaenladeclaración.
PuedetransferirunobjetodevueltoporlafunciónCreateObjectaunafunciónqueesperaunobjetocomoargumento.Porejemplo,elsiguientecódigocreaytransfiereunareferenciaalobjetoExcel.Application:
CallMiSub(CreateObject("Excel.Application"))
PuedecrearunobjetoencualquierPCremotoderedpasandoelnombrealargumentoservernamedeCreateObject.EsenombreeselmismoquelaparteMachineNamedeunnombrederecursocompartido:paraunnombrederecursocompartido"\\MiServidor\Público,"servernamees"MiServidor."
NotaConsulteladocumentacióndeCOM(veaMicrosoftDeveloperNetwork)paraobtenermásinformaciónacercadecómohacervisibleunaaplicaciónounPCremoto.Puedeagregarunaclavederegistroparasuaplicación.
ElcódigosiguientedevuelveelnúmerodeversióndeunainstanciadeExcelqueseejecutaenunPCremotollamadoMiServidor:
DimxlAppAsObject
SetxlApp=CreateObject("Excel.Application","MyServidor")
Debug.PrintxlApp.Version
Sielservidorremotonoexisteonoestádisponible,ocurriráunerrorentiempodeejecución.
NotaUtilicelafunciónCreateObjectcuandonohayaningunainstanciaactivadelobjeto.Siseestáejecutandounainstanciadelobjeto,seiniciaráunanueva
instanciaysecrearáunobjetodeltipoespecificado.Parautilizarlainstanciaactivaoparainiciarlaaplicaciónyquecargueunarchivo,utilicelafunciónGetObject.
Siunobjetoseharegistradoasímismocomounobjetodeinstanciaúnica,sólosecrearáunainstanciadelobjeto,sintenerencuentacuántasvecesseejecutalafunciónCreateObject.
CurDir(Función)
DevuelveuntipoVariant(String)querepresentalarutadeaccesoactual.
Sintaxis
CurDir[(unidad)]
Elargumentorequeridounidad,esunaexpresióndecadenaqueespecificaunaunidaddediscoexistente.Sinoseespecificalaunidaddediscooelargumentounidadesdelongitudcero(""),lafunciónCurDirdevuelvelarutadeaccesodelaunidaddediscoactual.EnMacintosh,CurDirignoracualquierunidadespecificadaysimplementedevuelvelarutadelaunidadactual.
CVErr(Función)
DevuelveuntipoVariantdeunsubtipoErrorquecontieneunnúmerodeerrorespecificadoporelusuario.
Sintaxis
CVErr(númeroerror)
Elargumentoobligatorionúmeroerrorescualquiernúmerodeerrorválido.
Comentarios
UtilicelafunciónCVErrparacrearerroresdefinidosporelusuarioenlosprocedimientoscreadosporelusuario.Porejemplo,sihacreadounafunciónqueaceptavariosargumentosynormalmentedevuelveunacadena,puedehacerquesufunciónevalúelosargumentosdeentradaparaasegurarsedequeestánenelintervaloadecuado.Sinoloestán,esprobablequesufunciónnodevuelvaelvalorderetornoqueesperaba.Enestecaso,CVErrlepermitedevolverunnúmerodeerrorqueleindicaráquéacciónrealizar.
NohayunaconversiónimplícitaenError.Porejemplo,nopuedeasignardirectamenteelvalorderetornodeCVErraunavariablequenoseaVariant.Sinembargo,puederealizarunaconversiónexplícita(utilizandoCInt,CDbl,etc…)delvalordevueltoporCVErryasignaraunavariabledeltipodedatoadecuado.
Date(Función)
DevuelveuntipoVariant(Date)quecontienelafechaactualdelsistema.
Sintaxis
Date
Comentarios
UtilicelainstrucciónDateparaestablecerlafechadelsistema.
ElcomportamientodeDate,ysielcalendarioesgregoriano,Date$,nocambiaporlaconfiguracióndelapropiedadCalendar.SielcalendarioesHijri,Date$devuelveunacadenade10caracteresdeltipomm-dd-yyyy,dondemm(01-12),dd(01-30)yyyyy(1400-1523)sonlosmeses,díasyañosHijri.Elintervalogregorianoequivalenteesdel1deenerode1980al31dediciembredel2099.
DateAdd(Función)
DevuelveunvalordetipoVariant(Date)conunafechaalaquesehaagregadounintervalodetiempoespecificado.
Sintaxis
DateAdd(intervalo,número,fecha)
LasintaxisdelafunciónDateAddconstadelossiguientesargumentosconnombre:
Parte Descripciónintervalo Requerido.Expresióndecadenaquecontieneelintervalode
tiempoquesedeseaagregar.número Requerido.Expresiónnuméricaconelnúmerodeintervalos
quesedeseaagregar.Puedeserpositiva(paraobtenerfechasfuturas)onegativa(paraobtenerfechaspasadas).
fecha Requerido.ValordetipoVariant(Date)oliteralquerepresentalafechaenlaqueseagregóelintervalo.
Valores
Elargumentointervalotienelossiguientesvalores:
Valor Descripciónyyyy Añoq Trimestrem Mesy Díadelañod Díaw Díadelasemanaww Semanah Horan Minutos Segundo
Comentarios
PuedeutilizarlafunciónDateAddparaagregarorestarunintervalodetiempoespecificadodeunafecha.Porejemplo,conDateAddpodríacalcularunafecha30díasposterioraldíadehoyounahora45minutosposterioralaactual.
Sideseaagregardíasafecha,puedeutilizarDíadelaño("y"),Día("d")oDíadelasemana("w").
LafunciónDateAddnodevuelvenuncaunafechanoválida.Enelejemplosiguienteseagregaunmesal31deenero:
DateAdd("m",1,"31-ene-95")
Enestecaso,DateAdddevuelve28-feb-95yno31-feb-95.Sifechaes31-ene-96,devolverá29-feb-96,yaque1996esunañobisiesto.
Silafechacalculadavaaresultarinferioralaño100(estoes,serestanmásañosquelosquehayenfecha),seproduceunerror.
SinúmeronoesunvalordetipoLongseredondearáalnúmeroenteromáscercanoantesdeserevaluado.
NotaElformatodelvalordevueltoporDateAddesdeterminadoporlaconfiguracióndelPaneldecontrol,noporelformatoquesepasaenelargumentofecha.
NotaParafecha,silaconfiguracióndelapropiedadCalendaresgregoriano,lafechaproporcionadadebesergregoriana.SielcalendarioesHijri,lafechaproporcionadadebeserHijri.Silosvaloresdemessonnombres,elnombredebeserconsistenteconlacofiguraciónactualdelapropiedadCalenda.ParaminimizarlaposibilidaddeconflictosdelosnombresdemesconlaconfiguraciónactualdeCalendar,introduzcavaloresdemesnuméricos(formatodefechacorta).
DateDiff(Función)
DevuelveunvalordetipoVariant(Long)queespecificaelnúmerodeintervalosdetiempoentredosfechasdeterminadas.
Sintaxis
DateDiff(intervalo,fecha1,fecha2[,primerdíasemana[,primerasemanaaño]])
LasintaxisdelafunciónDateDiffconstadelossiguientesargumentosconnombre:
Parte DescripciónIntervalo Requerido.Expresióndecadenaconelintervalode
tiempoutilizadoparacalcularladiferenciaentrefecha1yfecha2.
Fecha1,fecha2 Requerido;Variant(Date).Lasdosfechasquesevanautilizarenelcálculo.
Primerdíasemana Opcional.Constantequeespecificaelprimerdíadelasemana.Sinoseespecifica,seasumequeeseldomingo.
Primerasemanaaño Opcional.Constante,queespecificalaprimerasemanadelaño.Sinoseespecifica,seasumequeesaquéllaenlaqueseencuentreel1deenero.
Valores
Elargumentointervalotomalosvaloressiguientes:
Intervalo Descripciónyyyy Añoq Trimestrem Mesy Díadelañod Díaw Díadelasemanaww Semanah Horan Minutos Segundo
Elargumentoprimerdíasemanatomalossiguientesvalores:
Constante Valor DescripciónvbUseSystem 0 Utilicelaconfiguraciónde
laAPIdeNLS.vbSunday 1 Domingo
(predeterminado)vbMonday 2 LunesvbTuesday 3 MartesvbWednesday 4 MiércolesvbThursday 5 JuevesvbFriday 6 ViernesvbSaturday 7 Sábado
Constante Valor DescripciónvbUseSystem 0 Utilicelaconfiguraciónde
laAPIdeNLS.vbFirstJan1 1 Empiezaconlasemanaen
laqueseencuentrael1deenero(predeterminado).
vbFirstFourDays 2 Empiezaconlaprimerasemanaquetengaalmenoscuatrodíasenelnuevoaño.
vbFirstFullWeek 3 Empiezaconlaprimerasemanaqueestécompletamenteincluidaenelnuevoaño.
Comentarios
PuedeutilizarlafunciónDateDiffparadeterminarelnúmerodeintervalosespecificadosqueexistenentredosfechas.Porejemplo,conDateDiffpodríacalcularelnúmerodedíasentredosfechasoelnúmerodesemanasentrehoyyelfinaldelaño.
Sideseasaberelnúmerodedíasentrefecha1yfecha2,puedeutilizarDíadelaño("y")oDía("d").CuandointervaloesDíadelasemana("w"),DateDiffdevuelveelnúmerodesemanasentrelasdosfechas.Sifecha1eslunes,DateDiffcontaráelnúmerodeluneshastafecha2.Enlacuentaincluiráfecha2,peronofecha1.SiintervaloesSemana("ww"),lafunciónDateDiffdevolveráelnúmerodesemanasentrelasdosfechas.Enestecasocontaráelnúmerodedomingosentrefecha1yfecha2.DateDiffcontaráfecha2siesdomingo,peronofecha1,aunqueseadomingo.
Sifecha1serefiereaunmomentoposterioreneltiempoafecha2,lafunciónDateDiffdevolveráunnúmeronegativo.
Elargumentoprimerdíasemanaafectaaloscálculosqueutilizan"w"y"ww"comosímbolosdeintervalo.
Sifecha1ofecha2esunliteraldefecha,elaño,siseespecifica,pasaráaserunapartepermanentedelafecha.Sinembargo,sifecha1ofecha2estácomprendidaentrecomillasdobles("")yseomiteelaño,seinsertaráelañoencursoenelcódigocadavezqueseevalúelaexpresiónfecha1ofecha2.Asíesposibleescribircódigoquesepuedausarenañosdistintos.
Cuandocomparael31dediciembreconel1deenerodelañosiguiente,DateDiffparaunaño("yyyy")devolverá1aunquesólohayapasadoundía.
NotaParafecha1yfecha2,silaconfiguracióndelapropiedadCalendaresgregoriano,lafechaproporcionadadebesergregoriano.SielcalendarioesHijri,lafechaproporcionadadebeserHijri.
DatePart(Función)
DevuelveunvalordetipoVariant(Integer)quecontienelaparteespecificadadelafechadada.
Sintaxis
DatePart(intervalo,fecha[,primerdíasemana[,primerasemanaaño]])
LasintaxisdelafunciónDatePartconstadelossiguientesargumentosconnombre:
Parte Descripciónintervalo Requerido.Expresióndecadenaconelintervalode
tiempoquedeseadevolver.fecha Requerido.TipodevalorVariant(Date)quesedesea
evaluar.primerdíasemana Opcional.Unaconstantequeespecificaelprimerdía
delasemana.Sinoseespecifica,seasumequeeseldomingo.
primerasemanaaño Opcional.Unaconstantequeespecificalaprimerasemanadelaño.Sinoseespecifica,seasumequeesaquéllaenlaqueseencuentreel1deenero.
Valores
Elargumentointervalotomalossiguientesvalores:
Valor Descripciónyyyy Añoq Trimestrem Mesy Díadelañod Díaw Díadela
semanaww Semanah Horan Minutos Segundo
Elargumentoprimerdíasemanatomalossiguientesvalores:
Constante Valor DescripciónvbUseSystem 0 UtilizaelvalordelaAPIdeNLS.vbSunday 1 Domingo(predeterminado)vbMonday 2 LunesvbTuesday 3 MartesvbWednesday 4 MiércolesvbThursday 5 JuevesvbFriday 6 ViernesvbSaturday 7 Sábado
Elargumentoprimerasemanaañotomalossiguientesvalores:
Constante Valor DescripciónvbUseSystem 0 UtilizaelvalordelaAPI
deNLS.vbFirstJan1 1 Empiezaconlasemanaen
laqueseencuentrael1deenero(predeterminado).
vbFirstFourDays 2 Empiezaconlaprimerasemanaquetengaalmenoscuatrodíasenelnuevoaño.
vbFirstFullWeek 3 Empiezaconlaprimerasemanaqueestécompletamenteincluidaenelnuevoaño.
Comentarios
PuedeutilizarlafunciónDatePartparaevaluarunafechaydevolverunintervalodetiempoespecífico.Porejemplo,podríautilizarDatePartparacalculareldíadelasemanaolahoraactual.
Elargumentoprimerdíasemanaafectaaloscálculosqueutilizanlossímbolosdeintervalo"w"y"ww".
Sifechaesunliteraldefecha,elañoqueseespecifica,pasaráaserunapartepermanentedelafecha.Sinembargo,sifechaestáencerradaentrecomillasdobles("")yseomiteelaño,seinsertaráelañoencursoenelcódigocadavezqueseevalúelaexpresiónfecha.Asíesposibleescribircódigoquesepuedausarenañosdistintos.
NotaParafecha,silaconfiguracióndelapropiedadCalendaresgregoriano,lafechaproporcionadadebesergregoriano.SielcalendarioesHijri,lafechaproporcionadadebeserHijri.
Lapartedelafechadevueltaestáenunidadesdeperiododetiempodelactualcalendarioarábico.Porejemoplo,sielcalendarioactualesHijriylapartedelafechadevueltaeselaño,elvalordeañoesunañoHijri.
DateSerial(Función)
DevuelveuntipoVariant(Date)paraunaño,mesydíaespecificados.
Sintaxis
DateSerial(año,mes,día)
LasintaxisdelafunciónDateSerialconstadelossiguientesargumentosconnombre:
Parte Descripción
año Serequiere;Integer.Númeroentre100y9999,inclusiveounaexpresiónnumérica.
mes Serequiere;Integer.Cualquierexpresiónnumérica.día Serequiere;Integer.Cualquierexpresiónnumérica.
Comentarios
Paraespecificarunafecha,comoel31dediciembrede1991,elintervalodenúmerosparacadaargumentodeDateSerialdeberíaestarenelintervalonormalmenteaceptadoparalaunidad;esdecir,1–31paradíasy1–12parameses.Sinembargo,puedeespecificarfechasrelativasparacadaargumento,usandocualquierexpresiónnuméricaquerepresentealgúnnúmerodedías,mesesoaños,antesodespuésdeciertafecha.
Elejemplosiguienteusaexpresionesnuméricasenlugardenúmerosdefechaabsoluta.AquílafunciónDateSerialdevuelveunafechaqueeseldíaantesdelprimerdíadelmes(1-1),dosmesesantesdeagosto(8-2),10añosantesde1990(1990-10);enotraspalabras,el31demayode1980.
DateSerial(1990-10,8-2,1-1)
BajoWindows98yWindowsNT5,losañosdedosdígitosparaelargumentoañoseinterpretanbasadosenlaconfiguracióndelamáquinadefinidaporelusuario.Losvalorespredeterminadossonlosvaloresentre0y29,inclusive,seinterpretancomolosaños2000–2029.Losvalorespredeterminadosentre30y99,seinterpretancomolosaños1930–1999.Paraelrestodelosargumentosañoseusaunañoconloscuatrodígitos(porejemplo,1800).
VersionesmásrecientesdeWindowsinterpretanlosañosdedosdígitosbasadosenlosvalorespredeterminadosdescriotsanteriormente.Paraestarsegurodequelafuncióndevuelveelvalorapropiado,utiliceunañodecuatrodígitos.
Cuandounargumentonoestéincluidoenelintervaloaceptadonormalmenteparaél,seincrementahastalasiguienteunidadmayor,segúnconvenga.Porejemplo,siespecifica35días,seevalúacomounmesyalgunosdías,dependiendodelapartedelañodondeseaplique.Noobstante,siunsoloargumentoestáfueradesuintervalo-32.768a32.767osilafechaespecificadaporlostresargumentos,directamenteomedianteexpresión,noseincluyeenel
intervaloaceptabledefechas,seproduceunerror.
NotaParafecha,mesydía,silaconfiguracióndelapropiedadCalendaresgregoriano,lafechaproporcionadadebesergregoriano.SielcalendarioesHijri,lafechaproporcionadadebeserHijri.
Lapartedelafechadevueltaestáenunidadesdeperiododetiempodelactualcalendarioarábico.Porejemoplo,sielcalendarioactualesHijriylapartedelafechadevueltaeselaño,elvalordeañoesunañoHijri.Paraelaergumentoaño,losvaloresentre0y99,inclusive,seinterpretancomolosaños1400-1499.Paratodoslosvaloresaño,utiliceelañocompletodecuatrodígitos(porejemplo,1520).
DateValue(Función)
DevuelveuntipoVariant(Date).
Sintaxis
DateValue(fecha)
Elargumentofechaesnormalmenteunaexpresióndecadenaquerepresentaunafechadel1deenerodelaño100,al31dediciembrede9999.Sinembargo,fechatambiénpuedesercualquierexpresiónquepuedarepresentarunafecha,
unahoraounafechayunahoraeneseintervalo.
Comentarios
Sifechaesunacadenaqueincluyesolamentenúmerosseparadosporseparadoresdefecha,DateValuereconoceelordenparames,díayañodeacuerdoalformatodeFechaabreviadoquesehayaespecificadoparaelsistema.DateValuetambiénreconocefechasclaramentedefinidasquecontengannombresdemes,enformacompletaoabreviada.Porejemplo,ademásdereconocer30/12/1991y30/12/91,DateValuetambiénreconoce30dediciembrede1991ydic31,1991.
Siseomitelapartedeañodefecha,DateValueusaelañoactualdelafechadelsistemadesuPC.
Sielargumentofechaincluyeinformacióndehora,DateValuenoladevuelve.Sinembargo,sifechaincluyeinformacióndehoranoválida(talcomo"89:98"),ocurriráunerror.
NotaParafecha,silaconfiguracióndelapropiedadCalendaresgregoriano,lafechaproporcionadadebesergregoriano.SielcalendarioesHijri,lafechaproporcionadadebeserHijri.SilafechaproporcionadaesHijri,elargumentofechaesunaCadenaquerepresentaunafechadesde1/1/100(gregoriano,2deagostode718)a4/3/9666(gregoriano,31dediciembrede9999).
Day(Función)
DevuelveelvalordetipoVariant(Integer)queespecificaunnúmeroenteroentre1y31,inclusive,querepresentaeldíadelmes.
Sintaxis
Day(fecha)
ElargumentofechaescualquiervalordetipoVariant,expresiónnumérica,cadena,ocualquiercombinaciónquepuedarepresentarunafecha.SifechacontieneNull,lafuncióndevolveráNull.
NotaSilaconfiguracióndelapropiedadCalendaresgregoriano,elenterodevueltorepresentaeldíagregorianodelmesporelaergumentodefecha.SielcalendarioesHijri,elenterodevueltorepresentaeldíaHijridelmesporelargumentofecha.
DDB(Función)
DevuelveuntipoDoublequeindicaladepreciacióndeunbienduranteunperiododetiempoespecificadoutilizandoelmétododebalancededobledeclinaciónuotrométodoqueespecifique.
Sintaxis
DDB(cost,salvage,life,period[,factor])
LafunciónDDBconstadelossiguientesargumentosconnombre:
Parte Descripcióncost Requerido.UntipoDoublequeindicaelcostoinicialdelbien.salvage Requerido.UntipoDoublequeindicaelvalordelbienaltérmino
desuvidaútil.life Requerido.UntipoDoublequeindicaladuracióndelavidaútil
delbien.period Requerido.UntipoDoublequeindicaelperiodoparaelquese
calculaladepreciacióndelbien.factor Opcional.UntipoVariantqueindicalavelocidadalaquedeclina
elbalance.Siseomite,seasumeunvalor2(métododedeclinacióndoble).
Comentarios
Elmétododebalancededobledeclinacióncalculaladepreciaciónaunritmoacelerado.Ladepreciaciónesmayorenelprimerperiodoysereduceenlosperiodossucesivos.
Losargumentoslifeyperioddebenexpresarseenlasmismasunidades.Porejemplo,silifeseespecificaenmeses,periodtambiéndeberáindicarseenmeses.Todoslosargumentosdebensernúmerospositivos.
LafunciónDDButilizalafórmulasiguienteparacalcularladepreciaciónenunperiododado:
Depreciación/period=((cost–salvage)*factor)/life
Dir(Función)
DevuelveuntipoStringquerepresentaelnombredeunarchivo,directorioocarpetaquecoincideconelpatrónoatributodearchivoespecificado,olaetiquetadevolumendeunaunidaddedisco.
Sintaxis
Dir[(nombre_ruta[,atributos])]
LasintaxisdelafunciónDirconstadelassiguientespartes:
Parte Descripciónnombre_ruta Opcional.Expresióndecadenaqueespecificaunnombrede
archivo.Puedeincluireldirectorioocarpetaylaunidaddedisco.Sinoseencuentranombre_ruta,devolveráunacadenadelongitudcero("").
Atributos Opcional.Constanteoexpresiónnumérica,cuyasumaespecificalosatributosdearchivo.Siseomite,devuelvelosarchivosquecoincidenconnombre_rutaperonotieneatributos.
Valores
Losvaloresdelargumentoatributossonlossiguientes:
Constante Valor DescripciónvbNormal 0 (Predeterminado)Especificaarchivos
sinatributos.vbReadOnly 1 Especificaarchivosdesólolectura
ademásdesinatributos.vbHidden 2 Especificaarchivosocultosademásde
sinatributos.VbSystem 4 Especificaarchivosdesistemaademás
desinatributos.NoestádisponibleenMacintosh.
vbVolume 8 Especificalaetiquetadelvolumen;siseespecificacualquierotroatributo,seignoravbVolume.NoestádisponibleenMacintosh.
vbDirectory 16 Especificadirectoriosocarpetasademásdearchivossinatributos.
vbAlias 64 Especificaqueelnombredelarchivoesunalias.SóloestádisponibleenMacintosh.
NotaEstasconstantesestándefinidasenVisualBasicparaAplicaciones.Porello,susnombressepuedenutilizarencualquierlugardelcódigosustituyendoalvalorcorrespondiente.
Comentarios
LafunciónDir,enMicrosoftWindows,permiteelempleodeloscaracterescomodín'*'(múltiplescaracteres)y'?'(unsolocarácter)paraespecificarvariosarchivos.EnMacintosh,estoscaracteressontratadoscomocaracteresdenombredearchivoválidosynosepuedenutilizarcomocomodinesparaespecificarmúltiplesarchivo.
PuestoqueMacintoshnoadmiteloscomodines,utiliceeltipodearchivoparaidentificargruposdearchivos.PuedeutilizarlafunciónMacIDparaespecificareltipodearchivoenlugardeutilizarlosnombresdearchivo.Porejemplo,LasiguienteinstruccióndevuelveelnombredelprimerarchivodeTEXTOenlacarpetaactual:
Dir("AlgunaRuta",MacID("TEXT"))
Parapasarportodoslosarchivosdeunacarpeta,especifiqueunacadenavacía:
Dir("")
SiutilizalafunciónMacIDconDirenMicrosoftWindows,seproduceunerror.
Cualquiervalordeatributomayorde256esconsideradounvalorMacID.
LaprimeravezquesellamaalafunciónDirsedebeespecificarelnombre_ruta,delocontrarioseproduciráunerror.Siademásespecificalosatributosdearchivo,deberáincluirelnombre_ruta.
LafunciónDirdevuelveelprimernombredearchivoquecoincidecon
nombre_ruta.Paraobtenermásnombresdearchivoquecoincidanconnombre_ruta,deberávolverallamaralafunciónDirsinargumentos.Cuandonohaymásnombresdearchivocoincidentes,lafunciónDirdevuelveunacadenadecaracteresdelongitudcero.Cuandosedevuelveunacadenadelongitudcero,enlassiguientesllamadasdeberáespecificarnombre_rutaoseproduciráunerror.Puedecambiarnombre_rutasinhaberobtenidotodoslosnombresdearchivoquecoincidenconelargumentonombre_rutaactual.Sinembargo,nosepuedellamaralafunciónDirrecursivamente.LlamaralafunciónDirconelatributovbDirectorynodevuelvecontinuamentesubdirectorios.
SugerenciaDadoquelosnombresdearchivoseextraensinningúnordenespecífico,esconvenienteguardarlosnombresdevueltosenunamatrizyluegoordenarladelamaneradeseada.
DoEvents(Función)
Cedeelcontroldelaejecuciónalsistemaoperativo,paraqueéstepuedaprocesarotroseventos.
Sintaxis
DoEvents()
Comentarios
LafunciónDoEventsdevuelveuntipoIntegerquerepresentaelnúmerodeformulariosabiertosporunaversiónindependientedeVisualBasic,comoladeVisualBasicProfessionaledition.DoEventsdevuelve0enelrestodelasaplicaciones.
LafunciónDoEventspasaelcontrolalsistemaoperativo.Elcontrolnosedevuelvehastaqueelsistemaoperativohayaterminadodeprocesarloseventos
encolaysehayanenviadotodaslasteclasdelacolaSendKeys.
DoEventsesmásútilparatareassencillascomopermitirqueunusuariocanceleunprocesodespuésdequehacomenzado,porejemplounabúsquedadeunarchivo.Paraprocesosdeejecuciónlarga,esmejordarpreferenciaalprocesadorutilizandounTimerodelegandolatareaauncomponenteEXEdeActiveX.Enúltimocaso,latareapuedecontinuarcompletamenteindependientedelaaplicaciónyelsistemaoperativotieneencuentalamultitareaylosintervalosdetiempos.
AdvertenciaSiemprequedépreferenciaalprocesadortemporalmentedentrodeunprocedimientodeevento,asegúresedequeelprocedimientonoseejecutedenuevodesdeunapartediferentedelcódigoantesdequedevuelvalaprimerallamada.Estopodríacausarresultadosimpredecibles.Además,noutilicelafunciónDoEventssiexistelaposibilidaddequeotrasaplicacionesinteractúenconelprocedimiento,demaneraimprevista,duranteeltiempoenqueéstehacedidoelcontrol.
Environ(Función)
Devuelvelacadena(String)asociadaaunavariabledelentornodelsistemaoperativo.NoestádisponibleenMacintosh.
Sintaxis
Environ({envstring|number})
LasintaxisdelafunciónEnvironconstadelossiguientesargumentosconnombre:
Parte Descripciónenvstring Opcional.Expresióndecadenaquecontieneelnombre
deunavariabledeentorno.number Opcional.Expresiónnuméricacorrespondienteal
ordennuméricodelavariabledeentornoenlatabladecadenasdeentorno.Elargumentonumberpuedesercualquierexpresiónnumérica,peroseredondearáaunnúmeroenteroantesdeserevaluada.
Comentarios
Sinoseencuentraenvstringenlatabladecadenasdeentorno,lafuncióndevolveráunacadenadelongitudcero.Encasocontrario,lafunciónEnvirondevolveráeltextoasignadoalacadenaenvstringespecificada;estoes,eltextoquesiguealsignoigualenlatabladecadenasdeentornoparadichavariable.
Siespecificanumber,sedevolverálacadenaqueocupeesaposiciónnuméricaenlatabladecadenasdeentorno.Enestecaso,lafunciónEnvirondevolverátodoeltexto,incluidaenvstring.Sinohayningunacadenadeentornoenlaposiciónespecificada,lafunciónEnvirondevolveráunacadenadelongitudcero("").
EOF(Función)
DevuelveuntipoIntegerquecontieneunvalortipoBooleandeTruealllegaralfinaldelarchivo.
Sintaxis
EOF(númeroarchivo)
ElargumentonecesarionúmeroarchivoescualquiertipoIntegerquecontengacualquiernúmerodearchivoválido.
Comentarios
SeutilizaEOFparaevitarelerrorquesegeneraalintentarobtenerinformaciónmásalládelfinaldeunarchivo.
LafunciónEOFdevuelveFalsehastaquesehayallegadoalfinaldelarchivo.SiseusaconarchivosabiertosmedianteaccesoRandomoBinary,lafunciónEOFdevuelveFalsehastaquelaúltimainstrucciónGetquesehayaejecutadonopuedaleerelregistrocompleto.
ConarchivosabiertosconaccesoBinary,intentarleerelarchivousandolafunciónInputhastaqueEOFdevuelvaTrueproduceunerror.UselasfuncionesLOFyLocenlugardeEOFalleerarchivosbinariosconInputouseGetalutilizarlafunciónEOF.ConarchivosabiertoscomoOutput,EOFsiempredevuelveTrue.
Error(Función)
Devuelveelmensajedeerrorcorrespondienteaunnúmerodeerrordeterminado.
Sintaxis
Error[(númeroerror)]
Elargumentoopcionalnúmeroerrorpuedesercualquiernúmerodeerrorválido.Sinúmeroerroresunnúmerodeerrorválido,peronoestádefinido,Errordevolverálacadena“Errordefinidoporlaaplicaciónoporelobjeto".Si
númeroerrornoesválido,seproduciráunerror.Siseomitenúmeroerror,sedevolveráelmensajecorrespondientealúltimoerrorentiempodeejecución.Sinosehaproducidoningúnerrorentiempodeejecuciónosinúmeroerrores0,Errordevolveráunacadenadelongitudcero("").
Comentarios
ExaminelosvaloresdelaspropiedadesdelobjetoErrparaidentificarelúltimoerrorentiempodeejecución.ElvalordevueltoporlafunciónErrorcorrespondealapropiedadDescriptiondelobjetoErr.
Exp(Función)
DevuelveuntipoDoublequeespecificae(labasedeloslogaritmosnaturales)elevadoaunapotencia.
Sintaxis
Exp(número)
ElargumentonúmeroesuntipoDoubleocualquierexpresiónnuméricaválida
Comentarios
Sielvalordenúmeroesmayorque709.782712893,seproduceunerror.Elvalordelaconstanteees2.718282aproximadamente.
NotaLafunciónExpcomplementalaaccióndelafunciónLogyavecessellamaantilogaritmo.
FileAttr(Función)
DevuelveuntipoLongquerepresentaelmododelarchivoparalosarchivosabiertosusandolainstrucciónOpen.
Sintaxis
FileAttr(filenumber,returntype)
LasintaxisdelafunciónFileAttrconstadelossiguientesargumentosconnombre:
Parte Descripciónfilenumber Serequiere;untipoInteger.Cualquiernúmerodearchivo
válido.returntype Serequiere;untipoInteger.Númeroqueindicaeltipode
informaciónquesedebedevolver.Especifique1paraquesedevuelvaunvalorqueindicaelmododelarchivo.Sóloensistemasde16bits,especifique2paraobteneruncontroladordearchivodelsistemaoperativo.returntype2noescompatibleensistemasde32bitsyproduceunerror.
Valoresdevueltos
Cuandoelargumentoreturntypees1,lossiguientesvaloresdevueltosindicanelmododeaccesoalarchivo:
Modo ValorInput 1Output 2Random 4Append 8Binary 32
FileDateTime(Función)
DevuelveunvalordetipoVariant(Date)queindicalafechayhoraenqueunarchivofuecreadoomodificadoporúltimavez.
Sintaxis
FileDateTime(nombre_ruta)
Elargumentorequeridonombre_rutaesunaexpresióndecadenaqueespecificaunnombredearchivo.Puedeincluireldirectorioocarpetaylaunidaddedisco.
FileLen(Función)
DevuelveuntipoLongqueespecificalalongituddeunarchivoenbytes.
Sintaxis
FileLen(nombre_ruta)
Elargumentonombre_rutarequeridoesunaexpresióndecadenaqueespecificaunnombredearchivo.Puedeincluireldirectorioocarpetaylaunidaddedisco.
Comentarios
SielarchivoespecificadoestáabiertocuandosellamalafunciónFileLen,elvalordevueltorepresentaelúltimotamañodeesearchivocuandoseguardóporultimavezeneldisco.
NotaParaobtenerlalongituddeunarchivoabierto,utilicelafunciónLOF.
Filter(Función)
Descripción
Devuelveunamatrizbasadaencerosquecontieneunsubconjuntodeunamatrizdecadenasbasadaenunoscriteriosdefiltroespecificados.
Sintaxis
Filter(sourcesrray,match[,include[,compare]])
LasintaxisdelafunciónFilterconstadelossiguientesargumentosconnombre:
Parte Descripciónsourcearray Requerido.Lamatrizdecadenasdeunadimensión
dondesebuscará.match Requerido.Cadenaquesevaabuscar.include Opcional.ValorBooleanqueindicasilafunción
cebedevolversubcadenasqueincluyanoexcluyanmatch.SiincludeesTrue,lafunciónFilterdevuelveelsubconjuntodelamatrizquecontienematchcomounasubcadena.SiincludeesFalse,lafunciónFilterdevuelveelsubconjuntodelamatrizquenocontienevalorcomounasubcadena.
compare Opcional.Elvalornuméricoqueindicalaclasedecomparacióndecadenasquesevaautilizar.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
Elargumentocomparepuedetenerlosvaloressiguientes:
Constante Valor DescripciónvbUseCompareOption –1 Realizarunacomparaciónutilizandoelvalor
delainstrucciónOptionCompare.vbBinaryCompare 0 Realizarunacomparaciónbinaria.vbTextCompare 1 Realizarunacomparaciónbasadaeneltexto.vbDatabaseCompare 2 SóloparaMicrosoftAccess.Realizaruna
comparaciónbasadaeninformacióndesubasededatos.
Comentarios
Sinoseencuentrancoincidenciasdematchdentrodesourcearray,lafunciónFilterdevuelveunamatrizvacía.SeproduceunerrorsisourcearrayesNullonoesunamatrizdeunadimensión.
LamatrizdevueltaporlafunciónFiltersólocontieneelementossuficientesparacontenerelnúmerodeelementoscoincidentes.
Int,Fix(Funciones)
Devuelvelaparteenteradeunnúmero.
Sintaxis
Int(número)
Fix(número)
ElargumentonúmeroesuntipoDoubleocualquierexpresiónnuméricaválida.
SinúmerocontieneNull,lafuncióndevolveráNull.
Comentarios
LasfuncionesIntyFixeliminanlafraccióndeunnúmeroydevuelvenelvalorenteroresultante.
LadiferenciaentreIntyFixesquesielnúmeroesnegativo,Intdevuelveelprimerenteronegativomenoroigualanúmero,mientrasqueFixdevuelveelprimerenteronegativomayoroigualanúmero.Porejemplo,Intconvierte-8.4en-9yFixconvierte-8.4a-8.
LafunciónFix(número)esequivalentea:
Sgn(número)*Int(Abs(número))
Format(Función)
DevuelveuntipoVariant(String)quecontieneunaexpresiónformateadadeacuerdoalasinstruccionescontenidasenunaexpresióndeformato.
Sintaxis
Format(expresión[,formato[,primerdíadesemana[,primerdíadeaño]]])
LasintaxisdelafunciónFormatconstadelassiguientespartes:
Parte Descripción
expresión Requerido.Cualquierexpresiónválida.formato Opcional.Unaexpresióndeformatodefinidaporelusuario
oconnombreválida.primerdíadesemana Opcional.Unaconstantequeespecificaelprimerdíadela
semana.primerdíadeaño Opcional.Unaconstantequeespecificalaprimerasemana
delaño.
Valores
Elargumentoprimerdíadesemanatieneestosvalores:
Constante Valor DescripciónvbUseSystem 0 UtilizaelvalordeAPINLS.vbSunday 1 Domingo(predeterminado)vbMonday 2 LunesvbTuesday 3 MartesvbWednesday 4 MiércolesvbThursday 5 JuevesvbFriday 6 ViernesvbSaturday 7 Sábado
Elargumentoprimerdíadeañotieneestosvalores:
Constante Valor DescripciónvbUseSystem 0 UtilizaelvalordeAPINLS.vbFirstJan1 1 Comienzaconlasemanadondeestáel1de
enero(predeterminado).vbFirstFourDays 2 Comienzaconlaprimerasemanadelañoque
tengacuatrodíascomomínimo.vbFirstFullWeek 3 Comienzaconlaprimerasemanacompletadel
año.
Comentarios
Paradarformato HagaestoNúmeros Utiliceformatosnuméricosconnombrepredefinidoso
creeformatosnuméricosdefinidosporelusuario.Fechasyhoras Utiliceformatosdefecha/horaconnombrepredefinidoso
creeformatosdefecha/horadefinidosporelusuario.Númerosserialesdefechayhora
Utiliceformatosdefechayhoraoformatosnuméricos.
Cadenas Creesuspropiosformatosdecadenadefinidosporelusuario.
Siintentadarformatoaunnúmerosinespecificarformato,FormatproporcionaunafuncionalidadsimilaraladelafunciónStr.Sinembargo,losnúmerospositivosalosqueseleshadadoformatodecadenadecaracteresmedianteFormatcarecendelespacioinicialreservadoparamostrarelsignodelvalor,mientrasquelosconvertidosutilizandoStrconservanelespacioinicial.
Siestádandoformatoaunacadenanuméricanolocalizada,deberíausarunformatonuméricodefinidoporelusuarioparaasegurarsedequeobtienelaaparienciaquedesa.
NotaSilaconfiguracióndelapropiedadCalendaresgregorianoyformatoespecificadarformatoalafecha,laexpresiónproporcionadadebesergregoriana.SilaconfiguracióndelapropiedadCalendardeVisualBasicesHijri,laexpresiónproporcionadadebeserHijri.
Sielcalendarioesgregoriano,elsignificadodelossimbolosdelaexpresiónformatonocambia.SielcalendarioesHijri,todoslossímbolosdeformatodefecha(porejemplo,dddd,mmmm,yyyy)ytienenelmismosignificadoperoseaplicaalcalendarioHijri.Lossímbolosdeformatopermaneceneninglés,lossímbolosquesemuestrancomotexto(porejemplo,AMyPM)muestranlacadena(inglésoárabe)asociadaconesesímbolo.ElintervalodeciertossímboloscambiacuandoelcalendarioesHijri.
Símbolo Intervalo
d 1-30dd 1-30ww 1-51mmm Muestranombresdemesenteros(los
nombresdemesHijrinotienenabreviaturas).
y 1-355yyyy 100-9666
FormatCurrency(Función)
Descripción
Devuelveunaexpresiónformateadacomounvalordemonedautilizandoelsímbolodemonedadefinidoenelpaneldecontroldelsistema.
Sintaxis
FormatCurrency(expresión[,numDígitosDespuésDeDecimal[,incluirDígitoInicial[,utilizarParéntesisParaNúmerosNegativos[,agruparDígitos]]]])
LasintaxisdelafunciónFormatCurrencyconstadelassiguientespartes:
Parte Descripciónexpresión Requerido.Laexpresiónquese
formateará.numDígitosDespuésDeDecimal Opcional.Unvalornuméricoque
indicacuántosespaciossemuestranaladerechadeldecimal.Elvalorpredeterminadoes–1,queindicaqueseutilizalaconfiguraciónregionaldelequipo.
incluirDígitoInicial Opcional.Constantedetripleestadoqueindicasisemuestraunceroinicialparavaloresfraccionarios.VealasecciónValoresparaconsultarlosvaloresposibles.
utilizarParéntesisParaNúmerosNegativos Opcional.Constantedetripleestadoqueindicasilosvaloresnegativossesitúandentrodeparéntesis.VealasecciónValoresparaconsultarlosvaloresposibles.
agruparDígitos Opcional.Constantedetripleestadoqueindicasiseagrupanlosnúmerosutilizandoeldelimitadordegruposespecificadoenlaconfiguraciónregionaldelequipo.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
LosargumentosincluirDígitoInicial,utilizarParéntesisParaNúmerosNegativosyagruparDígitospuedentenerlosvaloressiguientes:
Constante Valor DescripciónvbTrue –1 Verdadero.VbFalse 0 Falso.vbUseDefault –2 Utilizarlosvaloresdelaconfiguración
regionaldelequipo.
Comentarios
Cuandoseomitanunoomásargumentosopcionales,laconfiguraciónregionaldelequipoproporcionalosvaloresparalosargumentosomitidos.
Laconfiguraciónregionaldelsistemadeterminalaposicióndelsímbolomoneda
relativoalvalormoneda.
NotaTodalainformaciónparalosvaloresprovienedelafichaMonedadelaconfiguraciónregional,exceptoelceroinicialqueprovienedelafichaNúmero.
FormatDateTime(Función)
Descripción
Devuelveunaexpresiónformateadacomounafechaounahora.
Sintaxis
FormatDateTime(fecha[,formatoConNombre])
LasintaxisdelafunciónFormatDateTimeconstadelassiguientespartes:
Parte Descripciónfecha Requerido.Laexpresióndefechaqueseformateará.formatoConNombre Opcional.Unvalornuméricoqueindicaelformatode
fechayhorautilizado.Siseomite,seutilizavbGeneralDate.
Valores
ElargumentoformatoConNombretienelossiguientesvalores:
Constante Valor DescripciónvbGeneralDate 0 Mostrarunafechay/uhora.Sihayunaparte
conlafecha,semuestracomofechacorta.Sihayunaparteconlahora,semuestracomounahoralarga.Siestánpresentes,semuestranlasdospartes.
vbLongDate 1 Mostrarunafechautilizandoelformatodefechalargaespecificadoenlaconfiguraciónregionaldesuequipo.
vbShortDate 2 Mostrarunafechautilizandoelformatodefechacortaespecificadoenlaconfiguraciónregionaldesuequipo.
vbLongTime 3 Mostrarunahorautilizandoelformatodehoraespecificadoenlaconfiguraciónregionaldesuequipo.
vbShortTime 4 Mostrarunahorautilizandoelformatode24horas(hh:mm).
FormatNumber(Función)
Descripción
Devuelveunaexpresiónformateadacomounnúmero.
Sintaxis
FormatNumber(expresión[,numDígitosDespuésDeDecimal[,incluirDígitoInicial[,utilizarParéntesisParaNúmerosNegativos[,agruparDígitos]]]])
LasintaxisdelafunciónFormatNumberconstadelassiguientespartes:
Parte Descripciónexpresión Requerido.Laexpresiónquese
formateará.numDígitosDespuésDeDecimal Opcional.Unvalornúmericoque
indicacuántoslugaressemuestranaladerechadeldecimal.Elvalorpredeterminadoes–1,queindicaqueseutilizalaconfiguraciónregionaldelequipo.
incluirDígitoInicial Opcional.Unaconstantedetriple
estadoqueindicasisemuestraunceroinicialparalosvaloresfraccionarios.VealasecciónValoresparaconsultarlosvaloresposibles.
utilizarParéntesisParaNúmerosNegativos Opcional.Unaconstantedetripleestadoqueindicasilosvaloresnegativossesitúandentrodeparéntesis.VealasecciónValoresparaconsultarlosvaloresposibles.
agruparDígitos Opcional.Unaconstantedetripleestadoqueindicasiseagrupanlosnúmerosutilizandoeldelimitadordegruposespecificadoenlaconfiguraciónregionaldelequipo.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
LosargumentosincluirDígitoInicial,utilizarParéntesisParaNúmerosNegativosyagruparDígitostienenlosvaloressiguientes:
Constante Valor DescripciónvbTrue –1 Verdadero.vbFalse 0 Falso.vbUseDefault –2 Utilizarlosvaloresdelaconfiguración
regionaldelequipo.
Comentarios
Cuandoseomitenunoomásargumentosopcionales,laconfiguraciónregionaldelequipoproporcionalosvaloresparalosargumentosomitidos.
NotaTodalainformacióndeconfiguraciónprovienedelafichaNúmerodelaconfiguraciónregional.
FormatPercent(Función)
Descripción
Devuelveunaexpresiónformateadacomounporcentaje(multiplicadopor100)conuncarácter%final.
Sintaxis
FormatPercent(expresión[,numDigitosDespuésDeDecimal[,incluirDígitoInicial[,utilizarParéntesisParaNúmerosNegativos[,agruparDígitos]]]])
LasintaxisdelafunciónFormatPercentconstadelassiguientespartes:
Parte Descripciónexpresión Requerido.Laexpresiónquese
formateará.numDígitosDespuésDeDecimal Opcional.Unvalornuméricoqueindica
cuántoslugaressemuestranaladerechadeldecimal.Elvalorpredeterminadoes–1,queindicaqueseutilizalaconfiguraciónregionaldelequipo.
incluirDígitoInicial Opcional.Unaconstantedetripleestado
queindicasisemuestraunceroinicialparalosvaloresfraccionarios.VealasecciónValoresparaconsultarlosvaloresposibles.
utilizarParensParaNúmerosNegativos Opcional.Unaconstantedetripleestadoqueindicasilosvaloresnegativossesitúanentreparéntesis.VealasecciónValoresparaconsultarlosvaloresposibles.
agruparDígitos Opcional.Unaconstantedetripleestadoqueindicasilosnúmerosseagrupanutilizandoeldelimitadordegruposespecificadoenlaconfiguraciónregionaldelequipo.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
LosargumentosincluirDígitoInicial,utilizarParéntesisParaNúmerosNegativosyagruparDígitostienenlosvaloressiguientes:
Constante Valor DescripciónvbTrue –1 Verdadero.vbFalse 0 Falso.vbUseDefault –2 Utilizarlosvaloresdelaconfiguración
regionaldelequipo.
Comentarios
Cuandoseomitenunoomásargumentosopcionales,laconfiguraciónregionaldelequipoproporcionalosvaloresparalosargumentosomitidos.
NotaTodalainformacióndeconfiguraciónprovienedelafichaNúmerodelaconfiguraciónregional.
FreeFile(Función)
DevuelveuntipoIntegerqueindicaelsiguientenúmerodearchivodisponibleparasuusoenlainstrucciónOpen.
Sintaxis
FreeFile[(númerointervalo)]
ElargumentoopcionalnúmerointervaloesuntipoVariantqueespecificaelintervalodesdeelquesevaadevolverelsiguientenúmerodearchivo.Se
especifica0(predeterminado)paradevolverunnúmerodearchivoentre1y255,inclusive.Seespecifica1paradevolverunnúmerodearchivoentre256y511.
Comentarios
UseFreeFileparaproporcionarunnúmerodearchivoquenoestéenuso.
FV(Función)
DevuelveuntipoDoublequeindicaelvalorfuturodeunaanualidadbasándoseenpagosperiódicosyconstantesyuntipodeinteréstambiénconstante.
Sintaxis
FV(rate,nper,pmt[,pv[,type]])
LafunciónFVconstadelossiguientesargumentosconnombre:
Parte Descripciónrate Requerido.UntipoDoublequeindicaeltipodeinterés
porperiodo.Porejemplo,siobtieneuncréditoparaunautomóvilaunporcentajeanual(TPA)del10porcientoyrealizapagosmensuales,eltipoporperiodoserá0,1/12ó0,0083.
nper Requerido.UntipoIntegerqueindicaelnúmerototaldeperiodosdepagodelaanualidad.Porejemplo,sirealizapagosmensualescorrespondientesauncréditoparaadquirirunautomóvilacuatroaños,elcréditotendráuntotalde4*12(ó48)periodosdepago.
pmt Requerido.UntipoDoublequeindicaelpagoquehayquerealizarcadaperiodo.Normalmente,lospagoscontienenunnominalyuninterésquenovaríaalolargodelavidadelaanualidad.
pv Opcional.UntipoVariantqueindicaelvaloractual(osumaglobal)quetieneenestemomentounaseriedepagospararealizarenelfuturo.Porejemplo,enelmomentodeobteneruncréditoparacomprarunautomóvil,elimportedelmismoeselvaloractualparaelprestamistadelospagosmensualesarealizar.Siseomite,seasumeelvalor0.
type Opcional.UntipoVariantqueindicaelmomentoenquevencenlospagos.Utilice0silospagosvencenalfinaldelperiodoo1silospagosvencenalprincipiodelmismo.Siseomite,seasumeelvalor0.
Comentarios
Unaanualidadesunaseriedepagosconstantesenefectivorealizadosalolargodeunperiododetiempo.Unaanualidadpuedeserunpréstamo(comopor
ejemplolahipotecadeuninmueble)ounainversión(comounplandeahorromensual).
Losargumentosrateynperdebencalcularseutilizandoperiodosdepagoexpresadosenlasmismasunidades.Porejemplo,siratesecalculaenmeses,npertambiéndebecalcularseenmeses.
Paratodoslosargumentos,elefectivoabonado(comodepósitosdeahorro)serepresentaconnúmerosnegativosyelrecibido(comochequesdedividendos)connúmerospositivos.
Funcionesdeconversióndetipos
Cadafunciónconvierteunaexpresiónauntipodedatosespecífico.
Sintaxis
CBool(expresión)
CByte(expresión)
CCur(expresión)
CDate(expresión)
CDbl(expresión)
CDec(expresión)
CInt(expresión)
CLng(expresión)
CSng(expresión)
CStr(expresión)
CVar(expresión)
Elargumentoobligatorioexpresiónescualquierexpresióndecadenaoexpresiónnumérica.
Tiposdevueltos
Elnombredelafuncióndeterminaeltipodevuelto,comosemuestraacontinuación:
Función Tipodevuelto IntervalodelargumentoexpresiónCBool Boolean Cualquierexpresióndecadenaonumérica
válida.CByte Byte 0a255.CCur Currency -922.337.203.685.477,5808a
922.337.203.685.477,5807.CDate Date Cualquierexpresióndefecha.CDbl Double -1.79769313486231E308a
-4,94065645841247E-324paravaloresnegativos;4,94065645841247E-324a1,79769313486232E308paravalorespositivos.
CDec Decimal +/-79.228.162.514.264.337.593.543.950.335paranúmerosbasadosencero,esdecir,númerossindecimales.Paranúmeroscon28decimales,elintervaloes+/-7,9228162514264337593543950335.Lamenorposiciónparaunnúmeroquenoseaceroes0,0000000000000000000000000001.
CInt Integer -32.768a32.767;lasfraccionesseredondean.
CLng Long -2.147.483.648a2.147.483.647;lasfraccionesseredondean.
CSng Single -3,402823E38a-1,401298E-45paravaloresnegativos;1,401298E-45a3,402823E38paravalorespositivos.
CStr String ElmismointervaloqueDoubleparavalores
numéricos.ElmismointervaloqueStringparavaloresnonuméricos.
CVar Variant ElvalorderetornodeCStrdependedelargumentoexpresión.
Comentarios
Silaexpresióndelargumentoexpresiónquesepasaalafunciónestáfueradelintervalodeltipodedatoalquesevaaconvertir,seproduceunerror.
Engeneral,elcódigosepuededocumentarutilizandolasfuncionesdeconversióndetiposdedatosparaindicarqueelresultadodealgunadelasoperacionessedeberíaexpresarcomountipodedatosenparticular,nocomoeltipodedatospredeterminado.Porejemplo,utiliceCcurparaforzarlaejecucióndeoperacionesconaritméticamonetariaenloscasosenlosqueseharíaconprecisiónsimple,dobleprecisiónoaritméticaentera.
DebeutilizarfuncionesdeconversióndetiposenlugardeValparaproporcionarconversionesquereconozcanlasvariantesinternacionales.Porejemplo,cuandoutilizaCCur,sereconocendiferentesseparadoresdecimales,diferentesseparadoresdemillaresyvariasopcionesmonetariasdependiendodelaconfiguraciónregionalestablecidaensuequipo.
Cuandolapartefraccionariaesexactamente0,5,CIntyCLngsiempreredondeanalnúmeroparmáscercano.Porejemplo,0,5redondeaa0,y1,5redondeaa2.CIntyCLngsediferenciandelasfuncionesFixyIntenquetruncan,enlugarderedondear,lapartefraccionariadeunnúmero.Además,FixyIntsiempredevuelvenunvalordelmismotipodelqueselepasa.
UtilicelafunciónIsDateparadeterminarsisepuedeconvertirdateaunafechaounahora.CDatereconoceliteralesdefechayliteralesdehoraademásdenúmeroscomprendidosdentrodelintervalodefechasaceptables.Alconvertirunnúmeroaunafecha,lapartenuméricaenteraseconvierteaunafecha.Cualquierpartefraccionariadelnúmeroseconviertealahoradeldía,comenzandoamedianoche.
CDatereconoceformatosdefechaqueseajustenalaconfiguraciónregionalde
susistema.Esposiblequenosedetermineelordencorrectodeldía,mesyañosiseproporcionaenunformatodiferentedelquereconocelaconfiguracióndefecha.Además,nosepuedereconocerunformatodefechalargosicontienelacadenadeldíadelasemana.
SeproporcionaunafunciónCVDateporcompatibilidadconversionesanterioresdeVisualBasic.LasintaxisdelafunciónCVDateesidénticaaladelafunciónCDate;sinembargo,CVDatedevuelveunVariantdesubtipoDateenlugardeltipoDatereal.PuestoqueahorahayuntipodedatointrínsecoDate,noesnecesarioCVDate.SepuedeobservarelmismoefectoalconvertirunaexpresiónaDateyasignarladespuésaunVariant.EstatécnicaescoherenteconlaconversióndetodoslosdemástiposintrínsecosasusequivalentessubtiposVariant.
NotaLafunciónCDecnodevuelveuntipodedatodiscreto;ensulugar,siempredevuelveunVariantconlosvaloresconvertidosaunsubtipoDecimal.
GetAllSettings(Función)
Devuelveunalistadeclavesysusvaloresrespectivos(originalmentecreadosconSaveSetting)apartirdelaentradadeunaaplicaciónenelregistrode
Windows.O(enMacintosh)informaciónenelarchivodeinicializacióndelaaplicación.
Sintaxis
GetAllSettings(appname,section)
LasintaxisdelafunciónGetAllSettingstienelossiguientesargumentosconnombre:
Parte Descripciónappname Obligatorio.Expresióndecadenaquecontieneelnombredela
aplicaciónoproyectoalqueseaplicalaclave.EnMacintosh,ésteeselnombredelarchivodeinicializaciónenlacarpetaPreferenciasenlacarpetadelSistema.
section Obligatorio.Expresióndetipocadenaquecontieneelnombredelaseccióncuyasclavessesolicitan.LafunciónGetAllSettingsdevuelveunvalordetipoVariantcuyocontenidoesunamatrizbidimensionalcontodaslasclavesdelasecciónespecificadaysusvalorescorrespondientes.
Comentarios
LafunciónGetAllSettingsdevuelveunvalorVariantnoinicializadosinoexistenappnameosection.
GetAttr(Función)
DevuelveuntipoIntegerquerepresentalosatributosdeunarchivo,directorioocarpeta.
Sintaxis
GetAttr(nombre_ruta)
Elargumentorequeridonombre_rutaesunaexpresióndecadenaqueespecificaunnombredearchivo.Puedeincluireldirectorioocarpetaylaunidaddedisco.
Valoresdevueltos
ElvalordevueltoporlafunciónGetAttreslasumadelossiguientesvaloresdeatributos:
Constante Valor DescripciónvbNormal 0 NormalvbReadOnly 1 SólolecturavbHidden 2 OcultovbSystem 4 ArchivodesistemaNodisponibleenMacintosh.vbDirectory 16 DirectorioocarpetavbArchive 32 Elarchivohasidomodificadodespuésdeefectuarla
últimacopiadeseguridadNodisponibleenMacintosh.
vbAlias 64 Elnombreespecificadoesunalias.DisponiblesóloenMacintosh.
NotaEstasconstantesestándefinidasenVisualBasicparaAplicaciones.Porello,esosnombressepuedenutilizarencualquierlugardelcódigoenvezdelvalorcorrespondiente.
Comentarios
Paradeterminarquéatributoshansidoestablecidos,utiliceeloperadorAndpararealizarunacomparaciónbitabitentreelvalordevueltoporlafunciónGetAttryelvalordelatributodearchivoindividualquedesee.Sielresultadoesdistintodecero,significaqueeseatributosehaestablecidoenelarchivoindicado.Porejemplo,elvalordevueltoporlasiguienteexpresiónAndescerosinoestáactivadoelatributoArchivo.
Resultado=GetAttr(NombreA)AndvbArchive
SisehaestablecidoelatributoModificado,elvalordevueltoesdistintodecero.
GetObject(Función)
DevuelveunareferenciaaunobjetoproporcionadoporuncomponenteActiveX.
Sintaxis
GetObject([pathname][,class])
LasintaxisdelafunciónGetObjectconstadeestosargumentosconnombre:
Parte Descripciónpathname Opcional;Variant(String).Larutadeaccesocompletayel
nombredelarchivoquecontieneelobjetoquesevaarecuperar.Siseomitepathname,senecesitaclass.
class Opcional;Variant(String).Unacadenaquerepresentalaclasedelobjeto.
Elargumentoclassutilizalasintaxisnombre_aplicación.tipo_objetoyconstadeestaspartes:
Parte Descripciónnombre_aplicación
Requerido;Variant(String).Elnombredelaaplicaciónqueproporcionaelobjeto.
tipo_objeto Requerido;Variant(String).Eltipooclasedeobjetoquesevaacrear.
Comentarios
UtilicelafunciónGetObjectparateneraccesoaunobjetoActiveXdesdeunarchivoyasignarelmismoaunavariabledeobjeto.UtilicelainstrucciónSetparaasignarelobjetodevueltoporlafunciónGetObjectalavariabledeobjeto.Porejemplo:
DimCADObjectAsObject
SetCADObject=GetObject("C:\CAD\ESQUEMA.CAD")
Cuandoseejecutaestecódigo,seinicialaaplicaciónasociadaconelargumentopathnameespecificadoyseactivaelobjetodelarchivoespecificado.
Sipathnameesunacadenadelongitudcero(""),GetObjectdevuelveunainstanciadelnuevoobjetodeltipoespecificado.Siseomiteelargumentopathname,GetObjectdevuelveelobjetoactivoactualdeltipoespecificado.Si
noexisteningúnobjetodeltipoespecificado,seproduceunerror.
Algunasaplicacioneslepermitenactivarpartedeunarchivo.Agregueunsignodeadmiración(!)alfinaldelnombredelarchivoyacontinuaciónescribaunacadenaqueidentifiquelapartedelarchivoquedeseaactivar.Paraobtenerinformaciónacercadecómocrearestacadena,consulteladocumentacióndelaaplicaciónquecreóelobjeto.
Porejemplo,enunaaplicacióndedibujopuedetenermuchascapasparaundibujoalmacenadoenunarchivo.PodríautilizarelsiguientecódigoparaactivarunacapadentrodeldibujollamadoESQUEMA.CAD:
SetLayerObject=GetObject("C:\CAD\ESQUEMA.CAD!Capa3")
Sinoespecificaelargumentoclassdelobjeto,Automatizacióndeterminalaaplicaciónquesevaainiciaryelobjetoquesevaaactivar,basándoseenelnombredearchivoproporcionado.Algunosarchivos,sinembargo,puedenadmitirmásdeunaclasedeobjeto.Porejemplo,undibujopuedeadmitirtrestiposdiferentesdeobjetos:unobjetoApplication,unobjetoDrawingyunobjetoToolbar,dondetodosformanpartedelmismoarchivo.Paraespecificarquéobjetodelarchivodeseaactivar,utiliceelargumentoopcionalclass.Porejemplo:
DimMiObjetoAsObject
SetMiObjeto=GetObject("C:\DIBUJOS\EJEMPLO.DRW","FIGMENT.DIBUJO")
Enelejemplo,FIGMENTeselnombredelaaplicacióndedibujoyDIBUJOesunodelostiposdeobjetoqueadmite.
Unavezqueseactivaunobjeto,hagareferenciaaélenelcódigomediantelavariabledeobjetoquedefinió.EnelejemploanteriortieneaccesoalaspropiedadesymétodosdelnuevoobjetomediantelavariabledeobjetoMiObjeto.Porejemplo:
MiObjeto.Line9,90
MiObjeto.InsertText9,100,"Holaatodos."
MiObjeto.SaveAs"C:\DIBUJOS\EJEMPLO.DRW"
NotaUtilicelafunciónGetObjectcuandohayaunainstanciaactualdelobjetoosideseacrearelobjetoconunarchivoyacargado.Sinohayningunainstanciaactualynodeseainiciarelobjetoconunarchivocargado,utilicelafunciónCreateObject.
Siunobjetoseharegistradoasímismocomounobjetodeinstanciasimple,sólosecreaunainstanciadelobjeto,independientementedelnúmerodevecesqueseejecutelafunciónCreateObject.Conunobjetodeinstanciasimple,GetObjectsiempredevuelvelamismainstanciacuandosellamaconlasintaxisdecadenadelongitudcero("")yproduceunerrorsiseomiteelargumentopathname.NopuedeutilizarlafunciónGetObjectparaobtenerunareferenciaaunaclasecreadaconVisualBasic.
GetSetting(Función)
Devuelveelvalordeunaclavedelaentradadeunaaplicaciónenelregistro.O(enMacintosh)informaciónenelarchivodeinicializacióndelaaplicación.
Sintaxis
GetSetting(appname,section,key[,default])
LasintaxisdelafunciónGetSettingtienelossiguientesargumentosconnombre:
Parte Descripciónappname Obligatorio.Expresióndecadenaquecontieneelnombredela
aplicaciónoproyectocuyaclavesesolicita.EnMacintosh,esteeselnombredelarchivodeinicializaciónenlacarpetaPreferenciasenlacarpetadelSistema.
section Obligatorio.Expresióndetipocadenaquecontieneelnombredelaseccióndondeseencuentralaclave.
key Obligatorio.Expresióndetipocadenaquecontieneelnombrededelaclavequesevaadevolver.
default Opcional.Expresiónquecontieneelvalorquesevaadevolversinohayvalorenlaclave.Siseomite,seasumequedefaultesunacadenadelongitudcero("").
Comentarios
SialgunodeloselementosindicadoscomoargumentosdelafunciónGetSettingnoexiste,devuelveelvalordefault.
Hex(Función)
DevuelveuntipoStringquerepresentaelvalorhexadecimaldeunnúmero.
Sintaxis
Hex(número)
Elargumentonúmeroescualquierexpresiónnuméricaoexpresióndecadenaválida.
Comentarios
Sinúmeronoestodavíaunnúmeroentero,seredondeaalnúmeroenteromáscercanoantesdeevaluarse.
Sinúmeroes LafunciónHexdevuelveNull NullEmpty Cero(0)Cualquierotronúmero
Hastaochocaractereshexadecimales
Puederepresentarnúmeroshexadecimalesdirectamente,anteponiendo&H.Porejemplo,&H10representa16decimalennotaciónhexadecimal.
Hour(Función)
DevuelveunvalordetipoVariant(Integer)queespecificaunnúmeroenteroentre0y23,inclusive,querepresentalahoradeldía.
Sintaxis
Hour(hora)
ElargumentohorapuedeserunvalordetipoVariant,unaexpresiónnumérica,expresióndecadenaocualquiercombinación,quepuedarepresentarunahora.SihoracontieneNull,lafuncióndevolveráNull.
IIf
(Función)
Devuelveunodeentredosvalores,dependiendodelaevaluacióndeunaexpresión.
Sintaxis
IIf(expr,truepart,falsepart)
LasintaxisdelafunciónIIfcuentaconlossiguientesargumentosconnombre:
Parte Descripciónexpr Requerido.Expresiónquesedeseaevaluar.truepart Requerido.ValoroexpresióndevueltasiexpresTrue.falsepart Requerido.Valoroexpresióndevueltasiexpres
False.
Comentarios
IIfsiempreevalúatruepartyfalsepart,aunquesólovayaadevolverunadeellas.Porestarazón,deberávigilarquenoseproduzcanefectosnodeseados.Porejemplo,sialevaluarfalsepartseproduceunerrordedivisiónporcero,segeneraráunerroraunqueexprseaTrue.
IMEStatus(Función)
DevuelveuntipoIntegerqueespecificaelmodoactualdelEditordemétododeentrada(InputMethodEditoroIME)deMicrosoftWindows;solamenteestádisponibleenversionesdelesteasiático.
Sintaxis
IMEStatus
Valoresdevueltos
Losvaloresdevueltosparalaconfiguraciónregionaljaponesasonlossiguientes:
Constante Valor DescripciónvbIMEModeNoControl 0 SincontrolIME
(predeterminado)vbIMEModeOn 1 IMEactivado
vbIMEModeOff 2 IMEdesactivadovbIMEModeDisable 3 IMEdeshabilitadovbIMEModeHiragana 4 ModoHiraganadeancho
completovbIMEModeKatakana 5 ModoKatakanadeancho
completovbIMEModeKatakanaHalf 6 ModoKatakanademedio
anchovbIMEModeAlphaFull 7 Modoalfanuméricode
anchocompletovbIMEModeAlpha 8 Modoalfanuméricode
medioancho
Losvaloresderetornoparalaconfiguraciónlocalcoreanasonlossiguientes:
Constante Valor DescripciónvbIMEModeNoControl 0 SincontrolIME
(predeterminado)vbIMEModeAlphaFull 7 Modoalfanuméricode
anchocompletovbIMEModeAlpha 8 Modoalfanuméricode
mitaddeanchovbIMEModeHangulFull 9 ModoHanguldeancho
completovbIMEModeHangul 10 ModoHanguldemitadde
ancho
Losvaloresderetornoparalaconfiguraciónregionalchinasonlossiguientes:
Constante Valor DescripciónvbIMEModeNoControl 0 SincontrolIME
(predeterminado)vbIMEModeOn 1 IMEactivado
vbIMEModeOff 2 IMEdesactivado
Input(Función)
DevuelveuntipoStringquecontienecaracteresdeunarchivoabiertoenmodoInputoBinary.
Sintaxis
Input(número,[#]númeroarchivo)
LasintaxisdelafunciónInputconstalassiguientespartes:
Parte Descripción
número Requerido.Cualquierexpresiónnuméricaválidaqueespecifiqueelnúmerodecaracteresparadevolver.
númeroarchivo Requerido.Cualquiernúmerodearchivoválido.
Comentarios
LosdatosqueseleenconlafunciónInputnormalmenteseescribenenunarchivoconPrint#oPut.SóloseutilizaestafunciónconarchivosabiertosenmodoInputoBinary.
AdiferenciadelainstrucciónInput#,lafunciónInputdevuelvetodosloscaracteresquelee,incluyendopuntosycoma,retornosdecarro,avancesdelínea,comillasyespaciosiniciales.
ConarchivosabiertosconaccesoBinary,unintentodeleerelarchivoconlafunciónInputhastaqueEOFseaTrueproduceunerror.UselasfuncionesLOFyLocenlugardeEOFalleerarchivosbinariosconInputouseGetalutilizarlafunciónEOF.
NotaUselafunciónInputBparadatostipobytecontenidosenarchivosdetexto.ConInputB,númeroespecificaelnúmerodebytesquesevaadevolverenlugardelnúmerodecaracteres.
InputBox(Función)
Muestraunmensajeenuncuadrodediálogo,esperaqueelusuarioescribauntextoohagaclicenunbotónydevuelveuntipoStringconelcontenidodelcuadrodetexto.
Sintaxis
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
LasintaxisdelafunciónInputBoxconstadeestosargumentosconnombre:
Parte Descripciónprompt Requerido.Expresióndecadenaquesemuestracomo
mensajeenelcuadrodediálogo.Lalongitudmáximadepromptesdeaproximadamente1024caracteres,segúnelanchodeloscaracteresutilizados.Sipromptconstademásdeunalínea,puedesepararlosutilizandouncarácterderetornodecarro(Chr(13)),uncarácterdeavancedelínea(Chr(10))ounacombinacióndeloscaracteresderetornodecarro-avancedelínea(Chr(13)yChr(10))entrecadalíneaylasiguiente.
title Opcional.Expresióndecadenaquesemuestraenlabarradetítulodelcuadrodediálogo.Siomitetitle,enlabarradetítulosecolocaelnombredelaaplicación.
default Opcional.Expresióndecadenaquesemuestraenelcuadrodetextocomorespuestapredeterminadacuandonosesuministraunacadena.Siomitedefault,semuestraelcuadrodetextovacío.
xpos Opcional.Expresiónnuméricaqueespecifica,entwips,ladistanciaensentidohorizontalentreelbordeizquierdodelcuadrodediálogoyelbordeizquierdodelapantalla.Sise
omitexpos,elcuadrodediálogosecentrahorizontalmente.ypos Opcional.Expresiónnuméricaqueespecifica,entwips,la
distanciaensentidoverticalentreelbordesuperiordelcuadrodediálogoyelbordesuperiordelapantalla.Siseomiteypos,elcuadrodediálogosecolocaaaproximadamenteunterciodelaalturadelapantalla,desdeelbordesuperiordelamisma.
helpfile Opcional.ExpresióndecadenaqueidentificaelarchivodeAyudaqueseutilizaráparaproporcionarayudainteractivaparaelcuadrodediálogo.Siseespecificahelpfile,tambiéndeberáespecificarsecontext.
context Opcional.ExpresiónnuméricaqueeselnúmerodecontextodeAyudaasignadoporelautoraltemadeAyudacorrespondiente.Siseespecificacontext,tambiéndeberáespecificarsehelpfile.
Comentarios
Cuandoseespecificatantohelpfilecomocontext,elusuariopuedepresionarF1(Windows)oAyuda(Macintosh)paravereltemadeAyudacorrespondienteacontext.Algunasaplicacioneshost,porejemplo,MicrosoftExcel,tambiénagregarautomáticamenteunbotónAyudaalcuadrodediálogo.SielusuariohaceclicenAceptaropresionaEntrar,lafunciónInputBoxdevuelveloquehayaenelcuadrodetexto.SielusuariohaceclicenCancelar,lafuncióndevuelveunacadenadecaracteresdelongitudcero("").
NotaSideseaespecificarmásqueelprimerargumentoconnombre,debeutilizarInputBoxenunaexpresión.Sideseaomitiralgunosargumentosdeposición,debeincluireldelimitadordecomacorrespondiente.
InStr(Función)
DevuelveuntipoVariant(Long)queespecificalaposicióndelaprimeraaparicióndeunacadenaenotra.
Sintaxis
InStr([start,]string1,string2[,compare])
LasintaxisdelafunciónInStrtieneestosargumentos:
Parte Descripciónstart Opcional.Expresiónnuméricaqueestablecelaposicióninicial
paracadabúsqueda.Siseomite,labúsquedacomienzaenlaposicióndelprimercarácter.SiiniciocontieneunvalorNull,seproduceunerror.Elargumentoinicioserequieresiseespecificacompare.
string1 Requerido.Expresióndecadenaenlaquesebusca.string2 Requerido.Expresióndecadenabuscada.compare Opcional.Especificaeltipodecomparacióndecadena.Si
compareesNull,ocurreunerror.Siseomitecompare,elvalorOptionComparedeterminaeltipodecomparación.EspecificaunLCID(LocaleID)válidoparausarreglasespecíficasdeconfiguraciónregionalenlacomparación.
Valores
Losvaloresdelargumentocompareson:
Constante Valor DescripciónvbUseCompareOption -1 Realizaunacomparaciónconlos
valoresdelainstrucciónOptionCompare.
vbBinaryCompare 0 Realizaunacomparaciónbinaria.vbTextCompare 1 Realizaunacomparacióntextual.vbDatabaseCompare 2 SóloparaMicrosoftAccess.Realiza
unacomparaciónbasadaenlainformaciónenlasbasesdedatos.
Valoresdevueltos
Si LafunciónInStrdevuelvestring1esdelongitudcero 0string1esNull Nullstring2esdelongitudcero startstring2esNull Nullstring2noseencontró 0string2seencontródentrodestring1
Posiciónenlaquesehallalacoincidencia
start>string2 0
Comentarios
LafunciónInStrBseutilizaconlosdatosdebytecontenidosenunacadena.Enlugardedevolverlaposicióndelcarácterdelaprimeraaparicióndeunacadenaenotra,InStrBdevuelvelaposicióndelbyte.
InStrRev(Función)
Descripción
Devuelvelaposicióndeunaaparicióndeunacadenadentrodeotra,desdeelfinaldelacadena.
Sintaxis
InstrRev(cadena1,cadena2[,inicio[,comparar]])
LasintaxisdelafunciónInstrRevconstadelossiguientesargumentoscon
nombre
Parte Descripcióncadena1 Requerido.Expresióndecadenaenlaquesebusca.cadena2 Requerido.Expresióndecadenaquesebusca.inicio Opcional.Unaexpresiónnúmericaqueestablecela
posicióninicialparacadabúsqueda.Siseomite,seutiliza–1,quesignificaquelabúsquedaempiezaenlaposicióndelúltimocarácter.Sieliniciocontiene
Nulo,seproduceunerror.
comparar Opcional.Unvalornuméricoqueindicalaclasedecomparaciónqueseutilizarácuandoseevalúensubcadenas.Siseomite,serealizaunacomparaciónbinaria.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
Elargumentocompararpuedetenerlosvaloressiguientes:
Constante Valor DescripciónvbUseCompareOption –1 Realizarunacomparaciónutilizandoelvalor
delainstrucciónOptionCompare.vbBinaryCompare 0 Realizarunacomparaciónbinaria.vbTextCompare 1 Realizaunacomparaciónbasadaeneltexto.vbDatabaseCompare 2 SóloparaMicrosoftAccess.Realizaruna
comparaciónbasadaenlainformacióndesubasededatos.
Valoresderetorno
InStrRevdevuelvelosvaloressiguientes:
Si InStrRevdevuelve
cadena1esdelongitudcero 0cadena1esNull Nullcadena2esdelongitudcero Iniciocadena2esNull Nullcadena2noseencuentra 0cadena2seencuentradentrodecadena1
Laposiciónenlaqueseencuentralacoincidencia
inicio>Len(cadena2) 0
Comentarios
ObservequelasintaxisparalafunciónInstrRevnoeslamismaquelasintaxisparalafunciónInstr.
IPmt(Función)
DevuelveuntipoDoublequeindicaelpagodeinteresesduranteunperiododeterminadodeunaanualidadbasándoseenpagosconstantesyperiódicosyuntipodeinteréstambiénconstante.
Sintaxis
IPmt(rate,per,nper,pv[,fv[,type]])
LafunciónIPmtconstadelossiguientesargumentosconnombre:
Parte Descripciónrate Requerido.UntipoDoublequeindicaeltipodeinterés
porperiodo.Porejemplo,siobtieneuncréditoparaunautomóvilaunatasaporcentualanual(TPA)del10porcientoyrealizapagosmensuales,eltipoporperiodoserá0,1/12ó0,0083.
per Requerido.UntipoDoublequeindicaelperiododepago,entre1ynper.
nper Requerido.UntipoDoublequeindicaelnúmerototaldeperiodosdepagodelaanualidad.Porejemplo,sirealizapagosmensualescorrespondientesauncréditoparaadquirirunautomóvilacuatroaños,elcréditotendráuntotalde4*12(ó48)periodosdepago.
pv Requerido.UntipoDoublequeindicaelvaloractual,ovalordehoy,deunaseriedepagosocobrosfuturos.Porejemplo,enelmomentodeobteneruncréditoparacomprarunautomóvil,elimportedelmismoeselvaloractualparaelprestamistadelospagosmensualesarealizar.
fv Opcional.UntipoVariantqueindicaelvalorfuturoobalanceenefectivoquesedeseatenerunavezrealizadoelpagofinal.Porejemplo,elvalorfuturodeuncréditoes0,puestoquetalessuvalordespuésdelpagofinal.Sinembargo,sideseaahorrar5.000.000paralaeducacióndesuhijodurante18años,elvalorfuturoserá5.000.000.Siseomite,seasumeelvalor0.
type Opcional.UntipoVariantqueindicaelmomentoenquevencenlospagos.Utilice0silospagosvencenalfinaldelperiodoo1silospagosvencenalprincipiodelmismo.Siseomite,seasumeelvalor0.
Comentarios
Unaanualidadesunaseriedepagosconstantesenefectivorealizadosalolargodeunperiododetiempo.Unaanualidadpuedeserunpréstamo(comoporejemplolahipotecadeuninmueble)ounainversión(comounplandeahorro
mensual).
Losargumentosrateynperdebencalcularseutilizandoperiodosdepagoexpresadosenlasmismasunidades.Porejemplo,siratesecalculaenmeses,npertambiéndebecalcularseenmeses.
Paratodoslosargumentos,elefectivoabonado(comodepósitosdeahorro)serepresentaconnúmerosnegativosyelrecibido(comochequesdedividendos)connúmerospositivos.
IRR(Función)
DevuelveuntipoDoublequeindicalatasainternaderetornodeunaseriedeflujosdeefectivoperiódicos(pagosycobros).
Sintaxis
IRR(values()[,guess])
LafunciónIRRconstadelossiguientesargumentosconnombre:
Parte Descripciónvalues() Requerido.MatrizdetipoDoublequeindicavaloresdeflujode
efectivo.Lamatrizdebeconteneralmenosunvalornegativo(unpago)yunopositivo(uncobro).
Guess Opcional.UntipoVariantqueindicaunvalorqueseestimaquedevolveráIRR.Siseomite,guessserá0,1(10porciento).
Comentarios
Latasainternaderetornoeseltipodeinterésrecibidoporunainversiónconsistenteenpagosycobrosqueseproducenaintervalosperiódicos.
LafunciónIRRutilizaelordendelosvaloresdelamatrizparainterpretarelordendelospagosycobros.Asegúresedeindicarlosvaloresdelospagosycobrossiguiendolasecuenciacorrecta.Noesnecesarioqueelflujodeefectivoencadaperiodoseaconstante,comoseríaenelcasodeunaanualidad.
IRRsecalculaporiteración.Comenzandoconelvalordeguess,IRRrealizauncálculocíclicohastaqueelresultadotieneunaprecisióndel0,00001porciento.Sidespuésde20intentosnopuedeencontrarunresultado,IRRfalla.
IsArray(Función)
DevuelveunvalordetipoBooleanqueindicasiunavariableesunamatriz.
Sintaxis
IsArray(nombrevariable)
Elargumentorequeridonombrevariable,esunidentificadorqueespecificaunavariable.
Comentarios
LafunciónIsArraydevuelveTruesilavariableesunamatriz;encasocontrario,devuelveFalse.LafunciónIsArrayesespecialmenteútilconvariablesdetipoVariantquecontienenmatrices.
IsDate(Función)
DevuelveunvalordetipoBooleanqueindicasiunaexpresiónsepuedeconvertirenunafecha.
Sintaxis
IsDate(expresión)
Elargumentoexpresiónrequerido,esuntipodedatosVariantquecontieneunaexpresióndefechaounaexpresióndecadenareconociblecomounafechaounahora.
Comentarios
LafunciónIsDatedevuelveTruesilaexpresiónesunafechaosepuedereconocercomounafechaválida;encasocontrario,devuelveFalse.EnMicrosoftWindows,elintervalodefechasválidasvadesdeel1deenerode100D.deC.hastael31dediciembrede9999D.deC.;losintervalosvaríandeunsistemaoperativoaotro.
IsEmpty(Función)
DevuelveunvalordetipoBooleanqueindicasiunavariablehasidoinicializada.
Sintaxis
IsEmpty(expresión)
ElargumentoexpresiónrequeridoesuntipodedatosVariantquecontieneunaexpresióndecadenaounaexpresiónnumérica.Sinembargo,yaquelafunciónIsEmptyseutilizaparadeterminarsilasvariablesindividualesestáninicializadas,elargumentoexpresiónesgeneralmenteunúniconombredevariable.
Comentarios
LafunciónIsEmptydevuelveTruesilavariablenoestáinicializadaoestáexplicítamenteconfiguradaaEmpty;encualquierotrocaso,devuelveFalse.SedevuelveFalsesiemprequeexpresióncontengamásdeunavariable.LafunciónIsEmptysolamentedevuelveinformaciónsignificativaparadatosdetipoVariant.
IsError(Función)
DevuelveunvalordetipoBooleanqueindicasiunaexpresióntieneunvalordeerror.
Sintaxis
IsError(expresión)
Elargumentoexpresiónrequerido,puedesercualquierexpresiónválida.
Comentarios
LosvaloresdeerrorsecreanalconvertirnúmerosrealesavaloresdeerrorutilizandolafunciónCVErr.LafunciónIsErrorseutilizaparadeterminarsiunaexpresiónnuméricarepresentaunerror.LafunciónIsErrordevuelveTruesielargumentoexpresiónindicaunerror;encasocontrario,devuelveFalse.
IsMissing(Función)
DevuelveunvalordetipoBooleanqueindicasiunargumentoopcionalsehatransferidoaunprocedimiento.
Sintaxis
IsMissing(nombreargumento)
ElargumentonombreargumentocontieneelnombredeunargumentodeprocedimientoVariantopcional.
Comentarios
UtilicelafunciónIsMissingparadetectarsilosargumentosopcionalessetransfirieronenlallamadaalprocedimiento.LafunciónIsMissingdevuelveTruesinosetransfirieronvaloresparaelargumentoespecificado;encasocontrario,devuelveFalse.SilafunciónIsMissingdevuelveTrueparaunargumento,utilizareseargumentoausenteenotrocódigopuedeprovocarunerrordefinidoporelusuario.SilafunciónIsMissingseutilizaenunargumentoParamArray,siempredevuelveFalse.ParadetectarunargumentoParamArrayvacío,compruebesiellímitesuperiordelamatrizesmenorqueellímiteinferior.
NotaIsMissingnofuncionaentiposdedatossimples(talescomoIntegeroDouble)porque,alcontrarioqueVariants,notieneunaprovisiónparabitde"falta"marcador.Porestarazón,lasintaxisparaargumentosopcionalesescritoslepermiteespecificarunvalorpredeterminado.Siseomiteelargumentocuandosellamaalprocedimiento,entonceselargumentotendráestevalorpredeterminado,comoenelejemplosiguiente:
SubMiSub(OptionalMiVarAsString="specialvalue")
IfMiVar="specialvalue"Then
'seomitióMiVar.
Else
...
EndSub
EnmuchoscasospuedeomitirlacomprobaciónIfMiVartotalmentesihaceelvalorpredeterminadoigualalvalorquequierequecontengaMiVarsielusuarioloomitedelallamadadelafunción.Estohacesucódigomásconcisoyefectivo.
IsNull(Función)
DevuelveunvalordetipoBooleanqueindicasiunaexpresióncontienedatosnoválidos(Null).
Sintaxis
IsNull(expresión)
Elargumentoexpresiónrequerido,esuntipodedatosVariantquecontieneunaexpresiónnuméricaounaexpresióndecadena.
Comentarios
LafunciónIsNulldevuelveTruesiexpresiónesNull;encualquierotrocaso,IsNulldevuelveFalse.Siexpresiónestáformadapormásdeunavariable,lapresenciadeNullencualquiervariablehacequesedevuelvaTrueparatodalaexpresión.
ElvalorNullindicaqueVariantcontienedatosnoválidos.LafunciónNullnoeslamismaquelafunciónEmpty,lacualindicaqueunavariabletodavíanohasidoinicializada.Tampocoeslomismoqueunacadenadelongitudcero(""),queavecessesuelellamarcadenanula.
ImportanteUtilicelafunciónIsNullparadeterminarsiunaexpresióncontieneunvalorNull.LasexpresionesqueesperaevaluarcomoTrueenciertascircunstancias,talescomoIfVar=NullANDIfVar<>Null,sonsiempreFalse.EstosedebeaquecualquierexpresiónquecontieneunNullesporsimismadevalorNullyporconsiguienteFalse.
IsNumeric(Función)
DevuelveunvalordetipoBooleanqueindicasiunaexpresiónsepuedeevaluarcomounnúmero.
Sintaxis
IsNumeric(expresión)
Elargumentoexpresiónrequerido,esuntipodedatosVariantquecontieneunaexpresiónnuméricaounaexpresióndetipocadena.
Comentarios
LafunciónIsNumericdevuelveTruesilaexpresióncompletasereconocecomounnúmero;enotrocaso,devuelveFalse.
LafunciónIsNumericdevuelveFalsesiexpresiónesunaexpresióndefecha.
IsObject(Función)
DevuelveunvalordetipoBooleanqueindicasiunidentificadorrepresentaunavariabledetipoObject.
Sintaxis
IsObject(identificador)
Elargumentoobligatorioidentificadoresunnombredevariable.
Comentarios
LafunciónIsObjectesútilsolamenteparadeterminarsiuntipodedatosVariantesdeVarTypevbObject.EstopodríasucedersiVariantactualmentehacereferencia(ounavezhizoreferencia)aunobjetoosicontieneNothing.
LafunciónIsObjectdevuelveTruesiidentificadoresunavariabledeclaradadetipoObjectocualquiertipodeclaseválida,osiidentificadoresuntipodedatosVariantdeVarTypevbObjectounobjetodefinidoporelusuario;encualquierotrocaso,devuelveFalse.LafunciónIsObjectdevuelveTrueinclusosilavariablehasidoconfiguradacomoNothing.
Utiliceeltratamientodeerroresparaasegurarsedequeunareferenciaaunobjetoesválida.
Join
(Función)
Descripción
Devuelveunacadenaquesecreóuniendosubcadenascontenidasenunamatriz.
Sintaxis
Join(lista[,delimitador])
LasintaxisdelafunciónJoinconstadelossiguientesargumentosconnombre
Parte Descripciónlista Requerido.Unamatrizdeunadimensiónquecontienelas
subcadenasqueunir.delimitador Opcional.Elcarácterdelacadenaqueseutilizaparasepararlas
subcadenasenlacadenadevuelta.Siseomite,seutilizaelcaracterespacio("").Sieldelimitadoresunacadenadelongitudcero(""),
seconcatenantodosloselementosenlalistasindelimitadores.
LBound(Función)
DevuelveuntipoLongquecontieneelsubíndicemáspequeñodisponibleparaladimensiónindicadadeunamatriz.
Sintaxis
LBound(nombre_matriz[,dimensión])
LasintaxisdelafunciónLBoundconstadelassiguientespartes:
Parte Descripción
nombre_matriz
Requerido.Nombredelavariabledematriz;siguelasconvencionesdenombresestándardevariables.
dimensión Opcional;Variant(Long).Númeroenteroqueindicaaquédimensióncorrespondeellímiteinferiordevuelto.Use1paralaprimeradimensión,2paralasegundayasísucesivamente.Sidimensiónseomite,sesuponequees1.
Comentarios
LafunciónLBoundseusajuntoconlafunciónUBoundparadeterminareltamañodeunamatriz.UselafunciónUBoundparaencontrarellímitesuperiordeunadimensiónmatricial.
LBounddevuelvelosvaloresenumeradosenlatablasiguienteparaunamatrizquetienelassiguientesdimensiones:
DimA(1To100,0To3,-3To4)
Instrucción ValordevueltoLBound(A,1) 1LBound(A,2) 0LBound(A,3) -3
Ellímiteinferiorpredeterminadoparacualquierdimensiónes0ó1,dependiendodelaconfiguracióndelainstrucciónOptionBase.LabasedeunamatrizcreadaconlafunciónArrayescero;estonoseveafectadoporOptionBase.
LasmatricescuyasdimensionesseestablecenmediantelacláusulaToenunainstrucciónDim,Private,Public,ReDimoStaticpuedentenercualquiervalorenterocomolímiteinferior.
LCase(Función)
DevuelveuntipoStringquesehaconvertidoaminúsculas.
Sintaxis
LCase(cadena)
Elargumentocadenaescualquierexpresióndecadenaválida.SistringcontieneNull,sedevuelveNull.
Comentarios
Sóloseconviertenaminúsculaslasletrasmayúsculas.Lasletrasminúsculasoloscaracteresquenosonletrasnosufrencambios.
Left(Función)
DevuelveuntipoVariant(String)quecontieneunnúmeroespecificadodecaracteresdelladoizquierdodeunacadena.
Sintaxis
Left(string,length)
LasintaxisdelafunciónLefttieneestosargumentosconnombre:
Parte Descripciónstring Requerido.Expresióndecadenadelacualsedevuelvenlos
caracteresqueestánmásalaizquierda.SistringcontieneNull,sedevuelveNull.
length Requerido,untipoVariant(Long).Expresiónnuméricaqueindicacuántoscaracteressevanadevolver.Sies0,devuelveunacadenadelongitudcero("").Siesmayoroigualalnúmerodecaracteresenstring,sedevuelvelacadenaentera.
Comentarios
Paradeterminarelnúmerodecaracteresenstring,utilicelafunciónLen.
NotaUtilicelafunciónLeftBcondatosdebytecontenidosenunacadena.Enlugardeespecificarelnúmerodecaracteresquesevanadevolver,lengthespecificaelnúmerodebytes.
Len(Función)
DevuelveuntipoLongquecontieneelnúmerodecaracteresenunacadenaoelnúmerodebytesnecesariosparaalmacenarunavariable.
Sintaxis
Len(cadena|nombrevar)
LasintaxisdelafunciónLenconstadelassiguientespartes:
Parte Descripcióncadena Cualquierexpresióndecadenaválida.SicadenacontieneNull,se
devuelveNull.Nombrevar Cualquiernombredevariableválido.SinombrevarcontieneNull,
sedevuelveNull.SinombrevaresuntipoVariant,LenactúaigualqueconuntipoStringysiempredevuelveelnúmerodecaracteresquecontiene.
Comentarios
Sedebenespecificaruno(ysólouno)delosdosargumentosposibles.Contiposdefinidosporelusuario,Lendevuelveeltamañocomoseescribiráenelarchivo.
NotaUtilicelafunciónLenBcondatosdebyteincluidosenunacadena,como
enloslenguajesdelconjuntodecaracteresdedoblebyte(DBCS).Enlugardedevolverelnúmerodecaracteresenunacadena,LenBdevuelveelnúmerodebytesutilizadospararepresentaresacadena.Contiposdedatosdefinidosporelusuario,LenBdevuelveeltamañoenmemoria,incluyendocualquierrellenoentrecódigoqueutilizaLenB,veaelsegundoejemploeneltemadeejemplo.
NotaPuedequeLennoseacapazdedeterminarelnúmerorealrequeridodebytesdealmacenamientocuandoseutilizaconcadenasdelongitudvariableentiposdedatosdefinidosporelusuario.
Loc(Función)
DevuelveuntipoLongqueespecificalaposiciónactualdelecturaoescrituradentrodeunarchivoabierto.
Sintaxis
Loc(númeroarchivo)
ElargumentoconnombrenúmeroarchivoescualquiernúmerodearchivodetipoInteger.
Comentarios
Acontinuaciónseindicaelvalordevueltoporcadamododeaccesoaarchivos:
Modo ValordevueltoRandom Númerodelúltimoregistroleídooescritoenelarchivo.Sequential Laposicióndebyteactualenelarchivo,divididapor128.Sin
embargo,lainformaciónquedevuelveLocparalosarchivossecuencialesnoseutilizaniesobligatoria.
Binary Posicióndelúltimobyteleídooescrito.
LOF(Función)
DevuelveuntipoLongqueindicaeltamaño,enbytes,deunarchivoabiertomediantelainstrucciónOpen.
Sintaxis
LOF(númeroarchivo)
ElargumentonecesarionúmeroarchivoescualquierIntegerquecontengaunnúmerodearchivoválido.
NotaParaobtenerlalongituddeunarchivoquenoestáabiertoutilicelafunciónFileLen.
Log(Función)
DevuelveuntipoDoublequeespecificaellogaritmonaturaldeunnúmero.
Sintaxis
Log(número)
ElargumentonúmeroesuntipoDoubleocualquierexpresiónnuméricaválidamayorquecero.
Comentarios
Ellogaritmonaturalesellogaritmoenbasee.Elvalordelaconstanteees2.718282aproximadamente.
Puedecalcularlogaritmosenbase-nparacualquiernúmeroxdividiendoellogaritmonaturaldexporellogaritmonaturaldendelasiguientemanera:
Logn(x)=Log(x)/Log(n)
Elejemplosiguienteilustraunafunciónpersonalizada(Function)quecalculalogaritmosenbase10:
StaticFunctionLog10(X)
Log10=Log(X)/Log(10#)
EndFunction
LTrim,RtrimyTrim(Funciones)
DevuelveuntipoVariant(String)quecontieneunacopiadeunacadenadeterminadasinespaciosalaizquierda(LTrim),sinespaciosaladerecha(RTrim)osinespaciosnialaderechanialaizquierda(Trim).
Sintaxis
LTrim(cadena)
RTrim(cadena)
Trim(cadena)
Elargumentocadenaobligatorioescualquierexpresióndecadenaválida.SicadenacontieneNull,sedevuelveNull.
Mid(Función)
DevuelveuntipoVariant(String)quecontieneunnúmeroespecificadodecaracteresdeunacadena.
Sintaxis
Mid(string,start[,length])
LasintaxisdelafunciónMidtieneestosargumentosconnombre:
Parte Descripciónstring Requerido.Expresióndecadenadelacualsedevuelvenlos
caracteres.SistringcontieneNull,sedevuelveNull.start Requerido;untipoLong.Posicióndecarácterenstringenlacual
comienzalapartequesequieretomar.Sistartesmayorqueelnúmerodecaracteresenlastring,Middevuelveunacadenadelongitudcero("").
length Requerido;untipoVariant(Long).Númerodecaracteresquesevanadevolver.Siseomiteoeneltextohaymenosdelengthcaracteres(incluyendoelcarácterdestart),sedevuelventodosloscaracteresdesdelaposicióndestarthastaelfinaldelacadena.
Comentarios
Paradeterminarelnúmerodecaracteresenstring,utilicelafunciónLen.
NotaUtilicelafunciónMidBcondatosdebyteincluidosenunacadena,comoenloslenguajesdeconjuntodecaracteresdedoblebyte.Enlugardeespecificarelnúmerodecaracteres,losargumentosespecificanelnúmerodebytes.ParavercódigodeejemploqueutilizaMidB,veaelsegundoejemploeneltemadeejemplo.
Minute(Función)
DevuelveunvalordetipoVariant(Integer)queespecificaunnúmeroenteroentre0y59,inclusive,querepresentaelminutodelahora.
Sintaxis
Minute(hora)
ElargumentohoraescualquiervalordetipoVariant,unaexpresiónnumérica,expresióndecadenaocualquiercombinaciónquepuedarepresentarunahora.SihoracontieneNull,lafuncióndevolveráNull.
MIRR(Función)
DevuelveuntipoDoublequeindicalatasainternaderetornomodificadaparaunaseriedeflujosdeefectivoperiódicos(pagosycobros).
Sintaxis
MIRR(values(),financerate,reinvestrate)
LafunciónMIRRconstadelossiguientesargumentosconnombre:
Parte Descripciónvalues() Requerido.MatrizdetipoDoublequeindicalosvalores
deflujodeefectivo.Lamatrizdebeconteneralmenosunvalornegativo(unpago)yunopositivo(uncobro).
financerate Requerido.UntipoDoublequeindicaeltipodeinteréspagadocomocostodefinanciación.
reinvestrate Requerido.UntipoDoublequeindicaeltipodeinterésrecibidocomogananciaporlainversiónenefectivo.
Comentarios
Latasainternaderetornomodificadaeslatasainternaderetornocuandolospagosyloscobrossefinanciancontiposdistintos.LafunciónMIRRtieneencuentaelcostodelainversión(financerate)yeltipodeinterésrecibidoporlareinversióndeefectivo(reinvestrate).
Losargumentosfinancerateereinvestratesonporcentajesexpresadoscomovaloresdecimales.Porejemplo,12porcientoseexpresacomo0,12.
LafunciónMIRRutilizaelordendelosvaloresdelamatrizparainterpretarelordendelospagosycobros.Asegúresedeindicarlosvaloresdelospagosycobrossiguiendolasecuenciacorrecta.
Month(Función)
DevuelveunvalordetipoVariant(Integer)queespecificaunnúmeroenteroentre1y12,inclusive,querepresentaelmesdelaño.
Sintaxis
Month(fecha)
ElargumentofechaescualquiervalordetipoVariant,unaexpresiónnumérica,expresióndecadenaocualquiercombinación,quepuedarepresentarunafecha.SifechacontieneNull,lafuncióndevolveráNull.
NotaSilaconfiguracióndelapropiedadCalendaresgregoriano,elenterodevueltorepresentaeldíadelasemanagregorianoparaelargumentofecha.SielcalendarioesHijri,elenterodevueltorepresentaeldíadelasemanaHijriparaelargumentofecha.ParafechasHijri,elargumentonúmeroescualquierexpresiónnuméricaquepuedarepresentarunafechay/uhoradesde1/1/100(gregoriano,2deagostodel718)a4/3/9666(gregoriano,31dediciembredel9999).
MonthName(Función)
Descripción
Devuelveunacadenaqueindicaelmesespecificado.
Sintaxis
MonthName(mes[,abreviar])
LasintaxisdelafunciónMonthNameconstadelassiguientespartes:
Parte Descripciónmes Requerido.Ladesignaciónnuméricadelmes.Porejemplo,
eneroes1,febreroes2,etcétera.abreviar Opcional.ElvalorBooleanqueindicasisevaaabreviarel
nombredelmes.Siseomite,elvalorpredeterminadoesFalse,quesignificaqueelnombredelmesnoseabrevia.
MsgBox(Función)
Muestraunmensajeenuncuadrodediálogo,esperaaqueelusuariohagaclicenunbotónydevuelveuntipoIntegercorrespondientealbotónelegidoporelusuario.
Sintaxis
MsgBox(prompt[,buttons][,title][,helpfile,context])
LasintaxisdelafunciónMsgBoxconstadeestosargumentosconnombre:
Parte Descripciónprompt Requerido.Expresióndecadenaquerepresentaelpromptenel
cuadrodediálogo.Lalongitudmáximadepromptesdeaproximadamente1024caracteres,segúnelanchodeloscaracteresutilizados.Sipromptconstademásdeunalínea,puedesepararlosutilizandouncarácterderetornodecarro(Chr(13))ouncarácterdeavancedelínea(Chr(10)),ounacombinacióndecaracteresderetornodecarro–avancedelínea(Chr(13)yChr(10))entrecadalíneaylasiguiente.
buttons Opcional.Expresiónnuméricaquecorrespondealasumadelosvaloresqueespecificanelnúmeroyeltipodelosbotonesquesepretendenmostrar,elestilodeiconoquesevaautilizar,laidentidaddelbotónpredeterminadoylamodalidaddelcuadrodemensajes.Siseomiteesteargumento,elvalorpredeterminadoparabuttonses0.
title Opcional.Expresióndecadenaquesemuestraenlabarradetítulodelcuadrodediálogo.Siseomitetitle,enlabarradetítulosecolocaelnombredelaaplicación.
helpfile Opcional.ExpresióndecadenaqueidentificaelarchivodeAyudaqueseutilizaparaproporcionarayudainteractivaenelcuadrode
diálogo.Siseespecificahelpfile,tambiénsedebeespecificarcontext.
context Opcional.ExpresiónnuméricaqueesigualalnúmerodecontextodeAyudaasignadoporelautoraltemadeAyudacorrespondiente.Siseespecificacontext,tambiénsedebeespecificarhelpfile.
Valores
Elargumentobuttonstieneestosvalores:
Constante Valor DescripciónVbOKOnly 0 MuestrasolamenteelbotónAceptar.VbOKCancel 1 MuestralosbotonesAceptary
Cancelar.VbAbortRetryIgnore 2 MuestralosbotonesAnular,
ReintentareIgnorar.VbYesNoCancel 3 MuestralosbotonesSí,NoyCancelar.VbYesNo 4 MuestralosbotonesSíyNo.VbRetryCancel 5 MuestralosbotonesReintentary
Cancelar.VbCritical 16 Muestraeliconodemensajecrítico.VbQuestion 32 Muestraeliconodepreguntade
advertencia.VbExclamation 48 Muestraeliconodemensajede
advertencia.VbInformation 64 Muestraeliconodemensajede
información.VbDefaultButton1 0 Elprimerbotóneselpredeterminado.VbDefaultButton2 256 Elsegundobotóneselpredeterminado.VbDefaultButton3 512 Eltercerbotóneselpredeterminado.VbDefaultButton4 768 Elcuartobotóneselpredeterminado.VbApplicationModal 0 Aplicaciónmodal;elusuariodebe
responderalcuadrodemensajesantesdepoderseguirtrabajandoenlaaplicaciónactual.
VbSystemModal 4096 Sistemamodal;sesuspendentodaslasaplicacioneshastaqueelusuariorespondaalcuadrodemensajes.
VbMsgBoxHelpButton 16384 AgregaelbotónAyudaalcuadrodemensaje.
VbMsgBoxSetForeground 65536 Especificalaventanadelcuadrodemensajecomolaventanadeprimerplano.
VbMsgBoxRight 524288 Eltextosealíneaaladerecha.VbMsgBoxRtlReading 1048576 Especificaqueeltextodebeaparecer
paraserleídodederechaaizquierdaensistemashebreoyárabe.
Elprimergrupodevalores(0a5)describeelnúmeroyeltipodelosbotonesmostradosenelcuadrodediálogo;elsegundogrupo(16,32,48,64)describeelestilodelicono,eltercergrupo(0,256,512)determinaelbotónpredeterminadoyelcuartogrupo(0,4096)determinalamodalidaddelcuadrodemensajes.Cuandosesumannúmerosparaobtenerelvalorfinaldelargumentobuttons,seutilizasolamenteunnúmerodecadagrupo.
NotaEstasconstanteslasespecificaVisualBasicforApplications.Portanto,elnombredelasmismaspuedeutilizarseencualquierlugardelcódigoenvezdesusvaloresreales.
Valoresdevueltos
Constante Valor DescripciónvbOK 1 AceptarvbCancel 2 CancelarvbAbort 3 AnularvbRetry 4 ReintentarvbIgnore 5 IgnorarvbYes 6 SívbNo 7 No
Comentarios
Cuandoseproporcionantantohelpfilecomocontext,elusuariopuedepresionarF1(Windows)oAyuda(Macintosh)paravereltemadeAyudacorrespondientealcontext.Algunasaplicacioneshost,porejemploMicrosoftExcel,tambiénagreganautomáticamenteunbotónAyudaalcuadrodediálogo.
SielcuadrodediálogocuentaconunbotónCancelar,presionarlateclaESCtendráelmismoefectoquehacerclicenestebotón.SielcuadrodediálogocontieneunbotónAyuda,sesuministraayudainteractivaparaesecuadrodediálogo.Sinembargo,nosedevuelvevaloralgunohastaquesehaceclicenunodeestosbotones.
NotaSideseaespecificarmásqueelprimerargumentoconnombre,debeutilizarMsgBoxenunaexpresión.Sideseaomitiralgúnargumentodeposición,debeincluireldelimitadordecomacorrespondiente.
Now(Función)
DevuelveunvalordetipoVariant(Date)queespecificalafechayhoraactualesdeacuerdoconlaconfiguracióndelafechaylahoradelsistemadesuequipo.
Sintaxis
Now
NPer(Función)
DevuelveuntipoDoublequeindicaelnúmerodeperiodosdeunaanualidadbasándoseenpagosperiódicosyconstantesconuntipodeinteréstambiénconstante.
Sintaxis
NPer(rate,pmt,pv[,fv[,type]])
LafunciónNPerconstadelossiguientesargumentosconnombre:
Parte Descripciónrate Requerido.UntipoDoublequeindicaeltipodeinteréspor
periodo.Porejemplo,siobtieneuncréditoparacomprarunautomóvilaunatasaporcentualanual(TPA)del10porcientoyrealizapagosmensuales,eltipoporperiodoserá0,1/12ó0,0083.
pmt Requerido.UntipoDoublequeindicaelpagoquehayquerealizarcadaperiodo.Normalmente,lospagoscontienenunnominalyuninterésquenovaríaalolargodelavidadelaanualidad.
pv Requerido.UntipoDoublequeindicaelvaloractual,ovalordehoy,deunaseriedepagosocobrosfuturos.Porejemplo,enelmomentodeobteneruncréditoparacomprarunautomóvil,elimportedelmismoeselvaloractualparaelprestamistadelospagosmensualesarealizar.
fv Opcional.UntipoVariantqueindicaelvalorfuturoobalanceenefectivoquesedeseatenerunavezrealizadoelpagofinal.Porejemplo,elvalorfuturodeuncréditoes0,puestoquetalessuvalordespuésdelpagofinal.Sinembargo,sideseaahorrar5.000.000paralaeducacióndesuhijodurante18años,elvalorfuturoserá5.000.000.Siseomite,seasumeelvalor0.
type Opcional.UntipoVariantqueindicaelmomentoenquevencenlospagos.Utilice0silospagosvencenalfinaldelperiodoo1silospagosvencenalprincipiodelmismo.Siseomite,seasumeelvalor0.
Comentarios
Unaanualidadesunaseriedepagosconstantesenefectivorealizadosalolargodeunperiododetiempo.Unaanualidadpuedeserunpréstamo(comoporejemplolahipotecadeuninmueble)ounainversión(comounplandeahorromensual).
Paratodoslosargumentos,elefectivoabonado(comodepósitosdeahorro)serepresentaconnúmerosnegativosyelrecibido(comochequesdedividendos)connúmerospositivos.
NPV(Función)
DevuelveuntipoDoublequeindicaelvaloractualnetodeunainversiónbasadaenunaseriedeflujosdeefectivoperiódicos(pagosycobros)yuntipodedescuento.
Sintaxis
NPV(rate,values())
LafunciónNPVconstadelossiguientesargumentosconnombre:
Parte Descripciónrate Requerido.UntipoDoublequeindicaeltipodedescuentoalo
largodelperiodo,expresadocomounvalordecimal.values() Requerido.MatrizdetipoDoublequeespecificavaloresde
flujodeefectivo.Lamatrizdebeconteneralmenosunvalornegativo(unpago)yunvalorpositivo(uncobro).
Comentarios
Elvaloractualnetodeunainversióneselvaloractualdeunaseriedepagosycobrosfuturos.
LafunciónNPVutilizaelordendelosvaloresdelamatrizparainterpretarelordendelospagosycobros.Asegúresedeindicarlosvaloresdelospagosycobrossiguiendolasecuenciacorrecta.
LainversióndeNPVcomienzaunperiodoantesdelafechadelprimerflujodeefectivoyterminaconelúltimoflujodeefectivodelamatriz.
Elcálculodelvaloractualnetosebasaenflujosdeefectivofuturos.Sielprimerflujodeefectivoseproducealprincipiodelprimerperiodo,elprimervalordebeagregarsealquedevuelvaNPVynodebeincluirseenlosvaloresdeflujodeefectivodevalues().
LafunciónNPVessimilaraPV(valoractual),exceptoenquePVpermitequelosflujosdeefectivocomiencenalprincipiooalfinaldeunperiodo.AdiferenciadelosvaloresdeflujodeefectivovariablesdeNPV,losdePVdebenserconstantesalolargodetodalainversión.
Oct(Función)
DevuelveuntipoVariant(String)querepresentaelvaloroctaldeunnúmero.
Sintaxis
Oct(número)
Elargumentonúmeronecesarioescualquierexpresiónnuméricaoexpresióndecadenaválida.
Comentarios
Sinúmeronoestodavíaunnúmeroentero,seredondeaalnúmeroenteromáscercanoantesdeevaluarse.
Sinúmeroes LafunciónOctdevuelveNull NullEmpty Cero(0)Cualquierotronúmero
Hasta11caracteresoctales
Puederepresentarnúmerosoctalesdirectamente,anteponiendo&O.Porejemplo,&O10enlanotaciónoctalrepresentaa8enbasediez.
Partition(Función)
DevuelveunaVariant(String)indicandoenquépuntoseencuentraunnúmerodentrodeunaseriecalculadadeintervalos.
Sintaxis
Partition(number,start,stop,interval)
LasintaxisdelafunciónPartitionconstadelossiguientesargumentosconnombre:
Parte Descripciónnumber Requerido.Númeroenteroquequiereevaluarfrentealos
intervalos.start Requerido.Númeroenteroqueindicaelcomienzodel
intervaloglobaldenúmeros.Nopuedeserinferiora0.
stop Requerido.Númeroenteroqueindicaelfinaldelintervaloglobaldenúmeros.Nopuedeserigualnimenorquestart.
Comentarios
LafunciónPartitionidentificaelintervaloenparticularenqueseencuentranumberydevuelveunaVariant(String)quedescribeeseintervalo.LafunciónPartitionresultaútilsobretodoenlasconsultas.Puedecrearunaconsultadeselecciónquemuestrecuántospedidosseencuentranendeterminadosintervalos,porejemplo,valoresdepedidoentre1y1000,entre1001y2000,etc.
Enlatablasiguientesemuestralaformaenquesedeterminanlosintervalosutilizandotresconjuntosdecomponentesstart,stopeinterval.LascolumnasPrimerintervaloyÚltimointervalomuestranlosvaloresdevueltosporPartition.Losintervalosserepresentanenlaformavalorinferior:valorsuperior,dondeelextremomínimo(valorinferior)delintervaloseseparacondospuntos(:)delextremomáximo(valorsuperior).
start stop intervalAntesdelprimero
Primerintervalo
Últimointervalo
Despuésdelúltimo
0 99 5 ":-1" "0:4" "95:99" "100:"20 199 10 ":19" "20:29" "190:199" "200:"100 1010 20 ":99" "100:119 "1000:1010" "1011:"
Enlatablaanterior,laterceralíneamuestraelresultadocuandostartystopdefinenunconjuntodenúmerosquenosepuedendividirexactamenteentreinterval.Elúltimointervaloseextiendehastastop(11números),aunqueintervales20.
Siesnecesario,Partitiondevolveráunintervaloconlossuficientesespaciosalaizquierdaparaquehayaelmismonúmerodecaracteres,alaizquierdayderechadelosdospuntos,queenstop,másuno.AsíseaseguraquesiseutilizaPartitionconotrosnúmeros,eltextoresultanteseprocesarácorrectamenteenunaoperacióndeordenaciónposterior.
Siintervales1,elintervaloseránumber:number,independientementedelos
argumentosstartystop.Porejemplo,siintervales1,numberes100ystopes1000,Partitiondevolverá"100:100".
SialgunodelosargumentosesNull,PartitiondevolveráNull.
Pmt(Función)
DevuelveuntipoDoublequeindicaelpagodeunaanualidadbasadaenpagosperiódicosconstantesconuntipodeinteréstambiénconstante.
Sintaxis
Pmt(rate,nper,pv[,fv[,type]])
LafunciónPmtconstadelossiguientesargumentosconnombre:
Parte Descripciónrate Requerido.UntipoDoublequeindicaeltipodeinterés
porperiodo.Porejemplo,siobtieneuncréditoparacomprarunautomóvilaunatasaporcentualanual(TPA)del10porcientoyrealizapagosmensuales,eltipoporperiodoserá0,1/12ó0,0083.
nper Requerido.UntipoIntegerqueindicaelnúmerototaldeperiodosdepagodelaanualidad.Porejemplo,sirealizapagosmensualescorrespondientesauncréditoparaadquirirunautomóvilacuatroaños,elcréditotendráuntotalde4*12(ó48)periodosdepago.
pv Requerido.UntipoDoublequeindicaelvaloractual(osumaglobal)quetieneenestemomentounaseriedepagospararealizarenelfuturo.Porejemplo,enelmomentodeobteneruncréditoparacomprarunautomóvil,elimportedelmismoeselvaloractualparaelprestamistadelospagosmensualesarealizar.
fv Opcional.UntipoVariantqueindicaelvalorfuturoobalanceenefectivoquesedeseatenerunavezrealizadoelpagofinal.Porejemplo,elvalorfuturodeuncréditoes0,puestoquetalessuvalordespuésdelpagofinal.Sinembargo,sideseaahorrar5.000.000paralaeducacióndesuhijodurante18años,elvalorfuturoserá5.000.000.Siseomite,seasumeelvalor0.
type Opcional.UntipoVariantqueindicaelmomentoenquevencenlospagos.Utilice0silospagosvencenalfinaldelperiodoo1silospagosvencenalprincipiodelmismo.Siseomite,seasumeelvalor0.
Comentarios
Unaanualidadesunaseriedepagosconstantesenefectivorealizadosalolargodeunperiododetiempo.Unaanualidadpuedeserunpréstamo(comoporejemplolahipotecadeuninmueble)ounainversión(comounplandeahorromensual).
Losargumentosrateynperdebencalcularseutilizandoperiodosdepagoexpresadosenlasmismasunidades.Porejemplo,siratesecalculaenmeses,npertambiéndebecalcularseenmeses.
Paratodoslosargumentos,elefectivoabonado(comodepósitosdeahorro)serepresentaconnúmerosnegativosyelrecibido(comochequesdedividendos)connúmerospositivos.
PPmt(Función)
DevuelveuntipoDoublequeindicaelpagonominalcorrespondienteaunperiododeterminadodeunaanualidadbasadaenpagosperiódicosyconstantesconuntipodeinteréstambiénconstante.
Sintaxis
PPmt(rate,per,nper,pv[,fv[,type]])
LafunciónPPmtconstadelossiguientesargumentosconnombre:
Parte Descripciónrate Requerido.UntipoDoublequeindicaeltipodeinterés
porperiodo.Porejemplo,siobtieneuncréditoparacomprarunautomóvilaunatasaporcentualanual(TPA)del10porciento,yrealizapagosmensuales,eltipoporperiodoserá0,1/12ó0,0083.
per Requerido.UntipoIntegerqueindicaelperiododelpago,entre1ynper.
nper Requerido.UntipoIntegerqueindicaelnúmerototaldeperiodosdepagodelaanualidad.Porejemplo,sirealizapagosmensualescorrespondientesauncréditoparaadquirirunautomóvilacuatroaños,elcréditotendráuntotalde4*12(ó48)periodosdepago.
fv Requerido.UntipoDoublequeindicaelvaloractual,ovalordehoy,deunaseriedepagosocobrosfuturos.Porejemplo,enelmomentodeobteneruncréditoparacomprarunautomóvil,elimportedelmismoeselvaloractualparaelprestamistadelospagosmensualesarealizar.
fv Opcional.UntipoVariantqueindicaelvalorfuturoobalanceenefectivoquesedeseatenerunavezrealizadoelpagofinal.Porejemplo,elvalorfuturodeuncréditoes0,puestoquetalessuvalordespuésdelpagofinal.Sinembargo,sideseaahorrar5.000.000paralaeducacióndesuhijodurante18años,elvalorfuturoserá5.000.000.Siseomite,seasumeelvalor0.
type Opcional.UntipoVariantqueindicaelmomentoenquevencenlospagos.Utilice0silospagosvencenalfinaldelperiodoo1silospagosvencenalprincipiodelmismo.Siseomite,seasumeelvalor0.
Comentarios
Unaanualidadesunaseriedepagosconstantesenefectivorealizadosalolargodeunperiododetiempo.Unaanualidadpuedeserunpréstamo(comoporejemplolahipotecadeuninmueble)ounainversión(comounplandeahorromensual).
Losargumentosrateynperdebencalcularseutilizandoperiodosdepagoexpresadosenlasmismasunidades.Porejemplo,siratesecalculaenmeses,npertambiéndebecalcularseenmeses.
Paratodoslosargumentos,elefectivoabonado(comodepósitosdeahorro)serepresentaconnúmerosnegativosyelrecibido(comochequesdedividendos)connúmerospositivos.
PV(Función)
DevuelveuntipoDoublequeindicaelvaloractualdeunaanualidadbasadaenpagosperiódicosconstantesquesevanarealizarenelfuturo,conuntipodeinteréstambiénconstante.
Sintaxis
PV(rate,nper,pmt[,fv[,type]])
LafunciónPVconstadelossiguientesargumentosconnombre:
Parte Descripciónrate Requerido.UntipoDoublequeindicaeltipodeinterés
porperiodo.Porejemplo,siobtieneuncréditoparacomprarunautomóvilaunatasaporcentualanual(TPA)del10porciento,yrealizapagosmensuales,eltipoporperiodoserá0,1/12ó0,0083.
nper Requerido.UntipoIntegerqueindicaelnúmerototaldeperiodosdepagodelaanualidad.Porejemplo,sirealizapagosmensualescorrespondientesauncréditoparaadquirirunautomóvilacuatroaños,elcréditotendráuntotalde4*12(ó48)periodosdepago.
pmt Requerido.UntipoDoublequeindicaelpagoarealizarcadaperiodo.Normalmente,lospagoscontienenunnominalyuninterésquenovaríaalolargodelavidadelaanualidad.
fv Opcional.UntipoVariantqueindicaelvalorfuturoobalanceenefectivoquesedeseatenerunavezrealizadoelpagofinal.Porejemplo,elvalorfuturodeuncréditoes0,puestoquetalessuvalordespuésdelpagofinal.Sinembargo,sideseaahorrar5.000.000paralaeducacióndesuhijodurante18años,elvalorfuturoserá5.000.000.Siseomite,seasumeelvalor0.
type Opcional.UntipoVariantqueindicaelmomentoenquevencenlospagos.Utilice0silospagosvencenalfinaldelperiodoo1silospagosvencenalprincipiodelmismo.Siseomite,seasumeelvalor0.
Comentarios
Unaanualidadesunaseriedepagosconstantesenefectivorealizadosalolargodeunperiododetiempo.Unaanualidadpuedeserunpréstamo(comopor
ejemplolahipotecadeuninmueble)ounainversión(comounplandeahorromensual).
Losargumentosrateynperdebencalcularseutilizandoperiodosdepagoexpresadosenlasmismasunidades.Porejemplo,siratesecalculaenmeses,npertambiéndebecalcularseenmeses.
Paratodoslosargumentos,elefectivoabonado(comodepósitosdeahorro)serepresentaconnúmerosnegativosyelrecibido(comochequesdedividendos)connúmerospositivos.
QBColor(Función)
DevuelveuntipoLongquerepresentaelcódigodecolorRGBcorrespondientealnúmerodecolorespecificado.
Sintaxis
QBColor(color)
Elargumentocoloresunnúmeroenteroentre0-15.
Valores
Elargumentocolortomalossiguientesvalores:
Número Color Número Color0 Negro 8 Gris1 Azul 9 Azulclaro
2 Verde 10 Verdeclaro3 Aguamarina 11 Aguamarinaclaro4 Rojo 12 Rojoclaro5 Fucsia 13 Fucsiaclaro6 Amarillo 14 Amarilloclaro7 Blanco 15 Blancobrillante
Comentarios
ElargumentocolorrepresentalosvaloresdecolorqueutilizanotrasversionesdeBasic(comoMicrosoftVisualBasicparaMS-DOSyBasicCompiler).Comenzandoporelbytemenossignificativo,elvalordevueltoespecificalosvaloresderojo,verdeyazulnecesariosparaestablecerelcolorcorrespondienteenelsistemaRGBqueutilizaVisualBasicparaAplicaciones.
Rate(Función)
DevuelveuntipoDoublequeindicaeltipodeinterésporperiododeunaanualidad.
Sintaxis
Rate(nper,pmt,pv[,fv[,type[,guess]]])
LafunciónRateconstadelossiguientesargumentosconnombre:
Parte Descripciónnper Requerido.UntipoDoublequeindicaelnúmerototalde
periodosdepagodelaanualidad.Porejemplo,sirealizapagosmensualescorrespondientesauncréditoparaadquirirunautomóvilacuatroaños,elcréditotendráuntotalde4*12(ó48)periodosdepago.
pmt Requerido.UntipoDoublequeindicaelpagoquesevaarealizarcadaperiodo.Normalmente,lospagoscontienenunnominalyuninterésquenovaríaalolargodelavidadelaanualidad.
pv Requerido.UntipoDoublequeindicaelvaloractual,ovalorhoy,deunaseriedepagosocobrosfuturos.Porejemplo,enelmomentodeobteneruncréditoparacomprarunautomóvil,elimportedelmismoeselvaloractualparaelprestamistadelospagosmensualesarealizar.
vf Opcional.UntipoVariantqueindicaelvalorfuturoobalanceenefectivoquesedeseatenerunavezrealizadoelpagofinal.Porejemplo,elvalorfuturodeuncréditoes0,puestoquetalessuvalordespuésdelpagofinal.Sinembargo,sideseaahorrar5.000.000$paralaeducacióndesuhijodurante18años,elvalorfuturoserá5.000.000$.Siseomite,seasumeelvalor0.
type Opcional.UntipoVariantqueindicaelmomentoenquevencenlospagos.Utilice0silospagosvencenalfinaldelperiodoo1silospagosvencenalprincipiodelmismo.Siseomite,seasumeelvalor0.
guess Opcional.UntipoVariantqueindicalaestimaciónquedevolveráRate.Siseomite,guessserá0,1(10porciento).
Comentarios
Unaanualidadesunaseriedepagosconstantesenefectivorealizadosalolargodeunperiododetiempo.Unaanualidadpuedeserunpréstamo(comoporejemplolahipotecadeuninmueble)ounainversión(comounplandeahorro
mensual).
Paratodoslosargumentos,elefectivoabonado(comodepósitosdeahorro)serepresentaconnúmerosnegativosyelrecibido(comochequesdedividendos)connúmerospositivos.
Ratesecalculaporiteración.Comenzandoporelvalordeguess,Raterealizauncálculocíclicohastaqueelresultadotieneunaprecisióndel0,00001porciento.Sidespuésde20intentosnopuedenencontrarunresultado,Ratefalla.Sisecomienzaporel10porcientoyRatefalla,pruebeconunvalordistintoparaguess.
Replace
(Función)
Descripción
Devuelveunacadenaenlaquesereemplazóunasubcadenaespecificadaconotrasubcadenaunnúmeroespecificadodeveces.
Sintaxis
Replace(expresión,encontrar,reemplazarCon[,inicio[,contar[,comparar]]])
LasintaxisdelafunciónReplaceconstadelossiguientesargumentosconnombre:
Parte Descripciónexpresión Requerido.Unaexpresióndecadenaquecontienela
subcadenaquereemplazar.encontrar Requerido.Lasubcadenaquesebusca.
reemplazarCon Requerido.Lasubcadenadesustitución.inicio Opcional.Laposicióndentrodelaexpresióndonde
seempezaráabuscarlasubcadena.Siseomite,sesuponequees1.
contar Opcional.Elnúmerodesustitucionesdesubcadenasqueserealizarán.Siseomite,elvalorpredeterminadoes–1,quesignificaquesehagantodaslassustitucionesposibles.
comparar Opcional.Elvalornúmericoqueindicalaclasedecomparaciónqueserealizarácuandoseevalúenlassubcadenas.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
Elargumentocompararpuedetenerlosvaloressiguientes:
Constante Valor DescripciónvbUseCompareOption –1 Realizarunacomparaciónutilizandoelvalor
delainstrucciónOptionCompare.vbBinaryCompare 0 Realizaunacomparaciónbinaria.vbTextCompare 1 Realizarunacomparaciónbasadaeneltexto.vbDatabaseCompare 2 SóloparaMicrosoftAccess.Realizaruna
comparaciónbasadaenlainformacióndesubasededatos.
Valoresderetorno
LafunciónReplacedevuelvelosvaloressiguientes:
Si Reemplazardevuelveexpresiónesdelongitudcero Unacadenadelongitudcero("").expresiónesNull Unerror.encontraresdelongitudcero Unacopiadeexpresión.
reemplazarConesdelongitudcero Unacopiadeexpresióncontodaslasaparicionesdeencontrarquitadas.
inicio>Len(expresión) Unacadenadelongitudcero.contares0 Unacopiadeexpresión.
Comentarios
ElvalorderetornodelafunciónReplaceesunacadenaconsustitucioneshechasquecomienzaenlaposiciónespecificadaporinicioyconcluyealfinaldelacadenaexpresión.Noesunacopiadelacadenaoriginaldesdeelinicioalfinal.
RGB(Función)
DevuelveunnúmeroenterotipoLongquerepresentaunvalordecolorRGB.
Sintaxis
RGB(red,green,blue)
LasintaxisdelafunciónRGBconstadelossiguientesargumentos:
Parte Descripciónred Obligatorio.tipoVariant(Integer).Númeroenelintervalode0-255,
ambosinclusive,querepresentaelcomponenterojodelcolor.green Obligatorio;tipoVariant(Integer).Númeroenelintervalode0-255,
ambosinclusive,querepresentaelcomponenteverdedelcolor.blue Obligatorio;tipoVariant(Integer).Númeroenelintervalode0-255,
ambosinclusive,querepresentaelcomponenteazuldelcolor.
Comentarios
LosmétodosdeaplicaciónylaspropiedadesqueaceptanunaespecificacióndecoloresperanqueéstaseaunnúmeroquerepresenteunvalordecolorRGB.UnvalordecolorRGBespecificalaintensidadrelativaderojo,verdeyazulquehacenquesemuestreuncolordeterminado.
ElvalordecualquierargumentoparalafunciónRGBqueseasuperiora255seconsiderarácomo255.
Lasiguientetablamuestraalgunoscoloresestándarysusvaloresderojo,verdeyazul:
Color Valorderojo Valordeverde ValordeazulNegro 0 0 0Azul 0 0 255Verde 0 255 0Cián 0 255 255Rojo 255 0 0Magenta 255 0 255Amarillo 255 255 0Blanco 255 255 255
LosvaloresdecolorRGBdevueltosporestafunciónsonincompatiblesconlosqueutilizaelsistemaoperativodeMacintosh.PuedenutilizarseenelcontextodelasaplicacionesdeMicrosoftparaMacintosh,peronosedebenutilizarcuandosecomunicancambiosdecolordirectamentealsistemaoperativosdeMacintosh.
Right(Función)
DevuelveuntipoVariant(String)quecontieneunnúmeroespecificadodecaracteresdelladoderechodeunacadena.
Sintaxis
Right(string,lenght)
LasintaxisdelafunciónRighttieneestosargumentosconnombre:
Parte Descripciónstring Requerido.Expresióndecadenadesdelacualsedevuelvenlos
caracteresqueestánmásaladerecha.SistringcontieneNull,sedevuelveNull.
lenght Requerido,untipoVariant(Long).Expresiónnuméricaqueindicacuántoscaracteressevanadevolver.Sies0,sedevuelveunacadenadelongitudcero("").Siesmayoroigualalnúmerodecaracteresenstring,sedevuelvelacadenacompleta.
Comentarios
Paradeterminarelnúmerodecaracteresenstring,utilicelafunciónLen.
NotaUtilicelafunciónRightBcondatosdebyteincluidosenunacadena.Enlugardeespecificarelnúmerodecaracteresparadevolver,longitudespecificaelnúmerodebytes.
Rnd(Función)
DevuelveuntipoSinglequecontieneunnúmeroaleatorio.
Sintaxis
Rnd[(número)]
ElargumentoopcionalnúmeroesuntipoSingleocualquierexpresiónnuméricaválida.
Valoresdevueltos
Sinúmeroes RndgeneraMenorquecero Elmismonúmerotodaslasveces,utilizandonúmerocomo
valordesemilla.Mayorquecero Elsiguientenúmeroaleatoriodelasecuencia.Igualacero Elnúmerogeneradomásrecientemente.Noseespecifica Elsiguientenúmeroaleatoriodelasecuencia.
Comentarios
LafunciónRnddevuelveunvalormenorque1peromayoroigualquecero.
ElvalordenúmerodeterminacómolafunciónRndgeneraunnúmeroaleatorio:
Paracualquiervalordesemillainicialsegeneralamismasecuenciadenúmeros.EstoesdebidoaquecadallamadasucesivaalafunciónRndusaráelnúmeroanteriorcomovalordesemillaparaelsiguientenúmerodelasecuencia.
AntesdellamaralafunciónRnd,utilicelainstrucciónRandomizesinargumentoparainicializarelgeneradordenúmerosaleatoriosconunvalordesemillabasadoenelrelojdelsistema.
Paraproducirenterosaleatoriosenunintervalodado,useestafórmula:
Int((Límite_superior-límite_inferior+1)*Rnd+límite_inferior)
Aquí,límite_superioreselnúmeromayordelintervaloylímite_inferioreselnúmeromenordelintervalo.
NotaPararepetirsecuenciasdenúmerosaleatorios,llamealafunciónRndconunargumentonegativoantesdeutilizarlafunciónRandomizeconunargumentonumérico.AlutilizarlainstrucciónRandomizeconelmismovalordenúmeronoserepitelasecuenciaanterior.
Round(Función)
Descripción
Devuelveunnúmeroredondeadoenelnúmeroespecificadodelugaresdecimales.
Sintaxis
Round(expresión[,númLugaresDecimales])
LasintaxisdelafunciónRoundconstadelassiguientespartes:
Parte Descripciónexpresión Requirido.Laexpresiónnuméricaqueseredondea.númLugaresDecimales Opcional.Unnúmeroqueindicacuántoslugaresala
derechadeldecimalseincluyenenelredondeo.Siseomite,lafunciónRounddevuelveenteros.
Second(Función)
DevuelveunvalordetipoVariant(Integer)queespecificaunnúmeroenteroentre0y59,inclusive,querepresentaunsegundo.
Sintaxis
Second(hora)
ElargumentohoraescualquiervalordetipoVariant,unaexpresiónnumérica,expresióndecadenaocualquiercombinación,quepuedarepresentarunahora.SihoracontieneNull,lafuncióndevolveráNull.
Seek(Función)
DevuelveuntipoLongqueespecificanlaposiciónactualdelecturaoescrituradeunarchivoabiertomediantelainstrucciónOpen.
Sintaxis
Seek(númeroarchivo)
ElargumentonecesarionúmeroarchivoescualquierIntegerquecontengaunnúmerodearchivoválido.
Comentarios
Seekdevuelveunvalorentre1y2.147.483.647(equivalentea2^31-1),ambosinclusive.
Lossiguientesvaloresdescribenelvalordevueltoparacadamododeaccesoaunarchivo.
Modo ValordevueltoRandom Númerodelsiguienteregistroqueseleeoescribe.Binary,Output,Append,Input
Posicióndebyteenlaquesellevaráacabolasiguienteoperación.Elprimerbytedeunarchivotienelaposición1,elsegundobytetienelaposición2yasísucesivamente.
Sgn
(Función)
DevuelveuntipoVariant(Integer)queindicaelsignodeunnúmero.
Sintaxis
Sgn(número)
Elargumentonúmeropuedesercualquierexpresiónnuméricaválida.
Valoresdevueltos
Sinúmeroes SgndevuelveMayorquecero 1Igualacero 0Menorquecero -1
Comentarios
ElsignodelargumentonúmerodeterminaelvalordevueltoporlafunciónSgn.
Shell(Función)
EjecutaunprogramaejecutableydevuelveuntipoVariant(Double)querepresentalaidentificacióndelatareadelprogramasisehaejecutadoconéxito,encasocontrariodevuelvecero.
Sintaxis
Shell(pathname[,windowstyle])
LasintaxisdelafunciónShelltieneestosargumentosconnombre:
Parte Descripciónpathname Requerido;Variant(String).Nombredelprogramaa
ejecutarydecualesquieraargumentosnecesariosomodificadordelalíneadecomandos;puedeincluirdirectorioocarpetayunidaddedisco.EnMacintosh,puedeutilizarlafunciónMacIDparaespecificarlafirmadeunaaplicaciónenlugardesunombre.ElsiguienteejemploutilizalafirmadeMicrosoftWord:ShellMacID("MSWD")
windowstyle Opcional.Variant(Integer)correspondientealestilodelaventanaenlacualsevaaejecutarelprograma.Siseomitewindowstyle,elprogramaseiniciaminimizadoconenfoque.EnMacintosh(sistema7.0oposterior),windowstylesólodeterminasilaaplicaciónrecibeelenfoquecuandoseejecuta.
Elargumentoconnombrewindowstyletieneestosvalores:
Constante Valor DescripciónvbHide 0 SeocultaWindowsysepasaelfocoala
ventanaoculta.LaconstantevbHidenoseaplicaaplataformasMacintosh.
vbNormalFocus 1 Windowsrecuperaelfocoyvuelveasuposiciónytamañooriginal.
vbMinimizedFocus 2 Windowssemuestracomouniconoconfoco.
vbMaximizedFocus 3 Windowssemaximizaconfoco.vbNormalNoFocus 4 Windowsvuelvealtamañoyposición
másrecientes.Laventanaactivaactualpermaneceactiva.
vbMinimizedNoFocus 6 Windowssemuestracomounicono.Laventanaactivaactualpermaneceactiva.
Comentarios
SilafunciónShellejecutaconéxitoelarchivonombrado,devuelvelaidentificacióndelatarea(Id)delprogramainiciado.LaIddelatareaesunnúmeroexclusivoqueidentificaelprogramaenejecución.SilafunciónShellnopuedeiniciarelprogramanombrado,ocurriráunerror.
EnMacintosh,vbNormalFocus,vbMinimizedFocusyvbMaximizedFocuscolocanlaaplicaciónenprimerplano;sinembargo,vbHide,vbNoFocus,vbMinimizeFocuslacolocanensegundoplano.
NotaDemanerapredeterminada,lafunciónShellejecutaotrosprogramasdeformaasíncrona.EstoquieredecirquenosepuedeesperarqueunprogramainiciadoconShellterminesuejecuciónantesdequeseejecutenlasinstruccionesquesiguenalafunciónShellenlaaplicación.
Sin(Función)
DevuelveuntipoDoublequeespecificaelsenodeunángulo.
Sintaxis
Sin(número)
ElargumentonúmeroesuntipoDoubleocualquierexpresiónnuméricaválidaqueexpresaunánguloenradianes.
Comentarios
LafunciónSintomaunánguloydevuelvelarazóndedosladosdeuntriángulorectángulo.Larazóneslalongituddelladoopuestoalángulodivididoporlalongituddelahipotenusa.
Elresultadoentradentrodelintervalo-1a1.
Paraconvertirgradosenradianes,multipliquelosgradosporpi/180.Paraconvertirradianesengrados,multipliquelosradianespor180/pi.
SLN(Función)
DevuelveuntipoDoublequeindicaladepreciaciónlinealdeunbienduranteunúnicoperiodo.
Sintaxis
SLN(cost,salvage,life)
LafunciónSLNconstadelossiguientesargumentosconnombre:
Parte Descripción
cost Requerido.UntipoDoublequeindicaelcostoinicialdelbien.salvage Requerido.UntipoDoublequeindicaelvalordelbienaltérmino
desuvidaútil.life Requerido.UntipoDoublequeindicaladuracióndelavidaútil
delbien.
Comentarios
Elperiododedepreciaciónsedebeexpresarenlasmismasunidadesqueelargumentolife.Todoslosargumentosdebensernúmerospositivos.
Space(Función)
DevuelveuntipoVariant(String)queconsisteenunnúmeroespecificadodeespacios.
Sintaxis
Space(número)
Elargumentonúmeroeselnúmerodeespaciosquesedeseaincluirenlacadena.
Comentarios
LafunciónSpaceesútilparadarformatoalasalidayparaborrardatosencadenasdelongitudfija.
Spc(Función)
SeutilizaconlainstrucciónPrint#oelmétodoPrintparaalterarlaposicióndelasalida.
Sintaxis
Spc(n)
Elargumentoobligatorioneselnúmerodeespaciosquesevanainsertarantesdemostraroimprimirlasiguienteexpresióndeunalista.
Comentarios
Sinesmenorqueelanchodelalíneadesalida,lapróximaposicióndeimpresiónsigueinmediatamentealnúmerodeespaciosimpresos.Sinesmayorqueelanchodelalíneadesalida,Spccalculalasiguienteposicióndeimpresiónmediantelafórmula:
posiciónactualimpresión+(nModancho)
Porejemplo,silaposicióndeimpresiónactuales24,elanchodelalíneadesalidaesde80yespecificaSpc(90),laimpresiónsiguientecomienzaenlaposición34(laposicióndeimpresiónactual+elrestode90/80).Siladiferenciaentrelaposicióndeimpresiónactualyelanchodelalíneadesalidaesmenorquen(onModancho),lafunciónSpcvaalprincipiodelalíneasiguienteygeneraunnúmerodeespaciosigualan-(ancho-posiciónactualimpresión).
NotaAsegúresedequelascolumnastabularesseansuficientementeanchasparapodercolocarletrasanchas.
CuandoseutilizaelmétodoPrintconunafuentedeespacioproporcional,elanchodeloscaracteresdeespacioimpresosmediantelafunciónSpcessiempreunpromediodelanchodetodosloscaracteresconeltamañoenpuntosdelafuenteelegida.Sinembargo,nohayningunacorrelaciónentreelnúmerodecaracteresimpresosyelnúmerodecolumnasdeanchofijoqueestoscaracteresocupan.Porejemplo,laletraWmayúsculaocupamásdeunacolumnadeanchofijoylaletraIminúsculaocupamenos.
Split(Función)
Descripción
Devuelveunamatrizdeunadimensión,basadaenceros,quecontieneunnúmeroespecificadodesubcadenas.
Sintaxis
Split(expresión[,delimitador[,contar[,comparar]]])
LasintaxisdelafunciónSplitconstadelossiguientesargumentosconnombre:
Parte Descripciónexpresión Requerido.Unaexpresióndecadenaquecontiene
subcadenasydelimitadores.Siexpresiónesunacadenadelongitudcero(""),Splitdevuelveunamatrizvacía,esdecir,unamatrizsinelementosysindatos.
delimitador Opcional.Elcarácterdelacadenautilizadoparaidentificarloslímitesdelasubcadena.Siseomite,sesuponequeelcarácterdeespacio("")eseldelimitador.Sieldelimitadoresunacadenadelongitudcero,sedevuelveunamatrizdeunúnicoelementoquecontienelacadenaexpresiónentera.
contar Opcional.Elnúmerodesubcadenasquesedevolverán;–1indicaquesedevuelventodaslassubcadenas.
comparar Opcional.Unvalornúmericoqueindicalaclasedecomparaciónqueserealizarácuandoseevalúenlassubcadenas.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
Elargumentocompararpuedetenerlosvaloressiguientes:
Constante Valor DescripciónvbUseCompareOption –1 Realizarunacomparaciónutilizandoelvalor
delainstrucciónOptionCompare.vbBinaryCompare 0 Realizarunacomparaciónbinaria.vbTextCompare 1 Realizarunacomparaciónbasadaeneltexto.vbDatabaseCompare 2 SóloparaMicrosoftAccess.Realizaruna
comparaciónbasadaenlainformacióndesubasededatos.
Sqr(Función)
DevuelveuntipoDoublequeespecificalaraízcuadradadeunnúmero.
Sintaxis
Sqr(número)
ElnúmeroargumentoesuntipoDoubleocualquierexpresiónnuméricaválidamayoroigualacero.
Str(Función)
DevuelveenuntipoVariant(String)larepresentacióndecadenadeunnúmero.
Sintaxis
Str(número)
ElargumentonúmeronecesarioesuntipoLongquecontieneunaexpresiónnuméricaválida.
Comentarios
Cuandolosnúmerosseconviertenacadenas,siempresereservaunespacioalaizquierdaparaelsignodelnúmero.Sinúmeroespositivo,lacadenadevueltacontieneunespacioalaizquierdayelsignomássedaporsupuesto.
UtilicelafunciónFormatparaconvertirvaloresnuméricosenvaloresconformatodefecha,hora,monedaoenotrosformatosdefinidosporelusuario.AdiferenciadeStr,lafunciónFormatnoincluyeunespacioalaizquierdaparaelsignodelnúmero.
NotaLafunciónStrsóloreconoceelpunto(.)comoseparadordecimalválido.Cuandoexistalaposibilidaddequesepuedautilizarunseparadordecimaldiferente(porejemplo,enaplicacionesinternacionales),sedebeutilizarCStrparaconvertirunnúmeroaunacadena.
StrComp(Función)
DevuelveuntipoVariant(Integer)queindicaelresultadodeunacomparacióndecadena.
Sintaxis
StrComp(string1,string2[,compare])
LasintaxisdelafunciónStrComptieneestosargumentosconnombre:
Parte Descripciónstring1 Requerido.Cualquierexpresióndecadenaválida.string2 Requerido.Cualquierexpresióndecadenaválida.compare Opcional.Especificaeltipodecomparacióndecadena.Siel
argumentocompareesnuloelvalordeOptionComparedeterminaeltipodecomparación.
Valores
Losvaloresdelainstruccióncomparesonlossiguientes:
Constante Valor DescripciónvbUseCompareOption -1 Realizaunacomparaciónconlos
valoresdelainstrucciónOptionCompare.
vbBinaryCompare 0 Realizaunacomparaciónbinaria.vbTextCompare 1 Realizaunacomparacióntextual.vbDatabaseCompare 2 SóloparaMicrosoftAccess.Realiza
unacomparaciónbasadaenlainformaciónenlasbasesdedatos.
Valoresdevueltos
LafunciónStrCompdevuelvelossiguientesvalores:
Si LafunciónStrCompdevuelvestring1esmenorquestring2 -1string1esigualastring2 0string1esmayorquestring2 1
string1ostring2esNull Null
StrConv(Función)
DevuelveuntipoVariant(String)queseconviertecomoseespecifica.
Sintaxis
StrConv(string,conversion,LCID)
LasintaxisdelafunciónStrConvtieneestosargumentosconnombre:
Parte Descripciónstring Requerido.Expresióndecadenaquesevaaconvertir.Conversion Requerido.UntipoInteger.Lasumadelosvaloresque
especificaeltipodeconversiónquesevaarealizar.LCID Opcional.LaLocaleID,siesdiferentedelaLocaleIDdel
sistema.(LaLocaleIDdelsistemaeslapredeterminada.)
Valores
Losvaloresdelargumentoconversionson:
Constante Valor DescripciónvbUpperCase 1 Conviertelacadenaacaracteresenmayúscula.vbLowerCase 2 Conviertelacadenaacaracteresenminúscula.vbProperCase 3 Convierteamayúsculalaprimeraletradecada
palabradelacadena.vbWide* 4* Convierteloscaracterescortos(unúnicobyte)de
lacadenaacaracteresanchos(doblebyte).vbNarrow* 8* Convierteloscaracteresanchos(doblebyte)dela
cadenaacaracterescortos(unúnicobyte).vbKatakana** 16** ConvierteloscaracteresHiraganadelacadenaa
caracteresKatakana.vbHiragana** 32** ConvierteloscaracteresKatakanadelacadenaa
caracteresHiragana.vbUnicode 64 ConviertelacadenaaUnicodeutilizandola
páginadecódigospredeterminadadelsistema.(NodisponibleenMacintosh.)
vbFromUnicode 128 ConviertelacadenadeUnicodealapáginadecódigospredeterminadadelsistema.(NodisponibleenMacintosh.)
*SeaplicaalasconfiguracionesregionalesdelLejanoOriente.
**SeaplicasolamenteaJapón.
NotaEstasconstantesestánespecificadasporVisualBasicforApplications.Comoresultado,sepuedenutilizarencualquierpartedesucódigoenlugardelosvaloresreales.Lamayoríasepuedencombinar,porejemplo,vbUpperCase+vbWide,exceptocuandoseexcluyenmutuamente,porejemplo,vbUnicode+vbFromUnicode.LasconstantesvbWide,vbNarrow,vbKatakanayvbHiraganaoriginanerroresentiempodeejecucióncuandoutilizanconfiguracionesregionalesdondenoseaplican.
Lossiguientessonseparadoresdepalabrasválidosparamayúsculas/minúsculas:Null(Chr$(0)),tabuladorhorizontal(Chr$(9)),avancedelínea(Chr$(10)),tabuladorvertical(Chr$(11)),avancedepágina(Chr$(12)),retornodecarro(Chr$(13)),espacio(SBCS)(Chr$(32)).ElvalorrealdeespaciovaríaporelpaísparaDBCS.
Comentarios
CuandoseconvierteunacadenadematrizByteaformatoANSI,sedebeutilizarlafunciónStrConv.CuandoseconvierteunamatrizenformatoUnicode,utiliceunainstruccióndeasignación.
StrReverse(Función)
Descripción
Devuelveunacadenaenlaqueseinvierteelordendecarácterdeunacadenaespecificada.
Sintaxis
StrReverse(cadena1)
Elargumentocadena1eslacadenacuyoscaracteresseinvierten.Sicadena1esunacadenadelongitudcero(""),sedevuelveunacadenadelongitudcero.SiesNull,seproduceunerror.
String(Función)
DevuelveuntipoVariant(String)quecontieneunacadenadecaracteresqueserepitedelalongitudespecificada.
Sintaxis
String(number,character)
LasintaxisdelafunciónStringtieneestosargumentosconnombre:
Parte Descripciónnumber Requerido;untipoLong.Longituddelacadenadevuelta.Si
númerocontieneNull,sedevuelveNull.character Requerido;untipoVariant.Códigodecarácterqueespecificael
carácterolaexpresióndecadenacuyoprimercarácterseutilizaparaconstruirlacadenadevuelta.SicharactercontieneNull,sedevuelveNull.
Comentarios
Siseespecificaparacharacterunnúmeromayorque255,Stringconvierteelnúmeroenuncódigodecarácterválidoutilizandolafórmula:
characterMod256
Switch(Función)
EvalúaunalistadeexpresionesydevuelveunvalorVariantounaexpresiónasociadaalaprimerainstruccióndelalistaquedacomoresultadoTrue.
Sintaxis
Switch(expresión-1,valor-1[,expresión-2,valor-2…[,expresión-n,valor-n]])
LasintaxisdelafunciónSwitchconstadelassiguientespartes:
Parte Descripciónexpresión Requerido.ExpresióndeltipoVariantquesedeseaevaluar.valor Requerido.Valoroexpresiónquesedevuelvesila
expresióncorrespondientedacomoresultadoTrue.
Comentarios
LalistadeargumentosdelafunciónSwichtestáformadaporparesdeexpresionesyvalores.Lasexpresionesseevalúansegúnaparecenenlalista,deizquierdaaderechaysedevuelveelvalorasociadoalaprimeraexpresiónquealevaluarsedaTrue.Silaspartesnoestánemparejadascorrectamente,seproduciráunerrorentiempodeejecución.Porejemplo,siexpresión-1daTrue,Switchdevolverávalor-1.Siexpresión-1daFalse,peroexpresión-2daTrue,Switchdevolverávalor-2yasísucesivamente.
SwitchdevolveráunvalorNullsi:
NingunadelasexpresionesdaTrue.
LaprimeraexpresiónquedaTruetieneasociadounvalorNull.
Switchevalúatodaslasexpresiones,aunquesolamentedevuelveunadeellas.Porestarazón,deberávigilarquenoseproduzcanefectosnodeseados.Porejemplo,sienlaevaluacióndeunaexpresiónhayunadivisiónporcero,seproduciráunerror.
SYD(Función)
DevuelveuntipoDoublequeindicaladepreciacióndeunbienendígitosdesumadeañosduranteunperiodoespecificado.
Sintaxis
SYD(cost,salvage,life,period))
LafunciónSYDconstadelossiguientesargumentosconnombre:
Parte Descripción
cost Requerido.UntipoDoublequeindicaelcostoinicialdelbien.salvage Requerido.UntipoDoublequeindicaelvalordelbienaltérmino
desuvidaútil.life Requerido.UntipoDoublequeindicaladuracióndelavidaútil
delbien.period Requerido.UntipoDoublequeindicaelperiodoparaelquese
calculaladepreciacióndelbien.
Comentarios
Losargumentoslifeyperioddebenexpresarseenlasmismasunidades.Porejemplo,silifeseindicaenmeses,periodtambiéndebeespecificarseenmeses.Todoslosargumentosdebensernúmerospositivos.
Tab(Función)
SeutilizaconlainstrucciónPrint#oelmétodoPrintparadefinirlaposicióndelasalida.
Sintaxis
Tab[(n)]
Elargumentoopcionalneselnúmerodelacolumnaquesemueveantesdemostraroimprimirlapróximaexpresióndeunalista.Siseomite,Tabcolocael
puntodeinserciónalprincipiodelasiguientezonadeimpresión.EstopermiteutilizarTabenlugardeunpuntoenlasconfiguracionesregionalesenlasqueseutilizaelpuntocomoseparadordecimal.
Comentarios
Silaposicióndeimpresiónactualesmayorquen,Tabvahastalacolumnandelasiguientelíneadelasalida.Sinesmenorque1,Tabcolocalaposicióndeimpresiónenlacolumna1.Sinesmayorqueelanchodelalíneadesalida,Tabcalculalasiguienteposicióndeimpresiónconlafórmula:
nModancho
Porejemplo,sianchoes80yespecificaTab(90),laimpresiónsiguientecomienzaenlacolumna10(elrestodelaoperación90/80).Sinesmenorquelaposicióndeimpresiónactual,laimpresióncomienzaenlalíneasiguiente,enlaposicióndeimpresióncalculada.Silaposicióndeimpresióncalculadaesmayorquelaposicióndeimpresiónactual,laimpresióncomienzaenlaposicióndeimpresióncalculadaenlamismalínea.
Laposicióndeimpresiónenelextremoizquierdodeunalíneadesalidaessiempre1.CuandoseutilizalainstrucciónPrint#paraimprimirenarchivos,laposicióndeimpresiónenelextremoderechoeselanchoactualdelarchivodesalida,quepuedeasignarconlainstrucciónWidth#.
NotaAsegúresedequelascolumnastabularesseansuficientementeanchasparadarcabidaaletrasanchas.
CuandoutilicelafunciónTabconelmétodoPrint,lasuperficiedeimpresiónsedividiráencolumnasuniformesdeanchofijo.Elanchodecadacolumnaeselpromediodelanchodetodosloscaracteresconeltamañoenpuntosdelafuenteelegida.Sinembargo,nohayningunacorrelaciónentreelnúmerodecaracteresimpresosyelnúmerodecolumnasdeanchofijoqueestoscaracteresocupan;porejemplo,laletraWmayúsculaocupamásdeunacolumnadeanchofijoylaletraiminúsculaocupamenos.
Tan(Función)
DevuelveuntipoDoublequeespecificalatangentedeunángulo.
Sintaxis
Tan(número)
ElargumentonúmeroesuntipoDoubleocualquierexpresiónnuméricaválidaqueexpresaunánguloenradianes.
Comentarios
LafunciónTantomaunánguloydevuelvelarazóndedosladosdeuntriángulorectángulo.Larazóneslalongituddelladoopuestoalángulo,divididaporlalongituddelladoadyacentealángulo.
Paraconvertirgradosenradianes,multipliquelosgradosporpi/180.Paraconvertirradianesengrados,multipliquelosradianespor180/pi.
Time(Función)
DevuelveunvalordetipoVariant(Date)indicandolahoraactualdelsistema.
Sintaxis
Time
Comentarios
UselainstrucciónTimeparaestablecerlahoradelsistema.
Timer(Función)
DevuelveuntipoSinglequerepresentaelnúmerodesegundostranscurridosdesdelamedianoche.
Sintaxis
Timer
Comentarios
EnMicrosoftWindowslafunciónTimerdevuelvepartesfraccionalesdeunsegundo.EnMacintosh,laresolucióndeltemporizadoresunsegundo.
TimeSerial(Función)
DevuelveuntipoVariant(Date)quecontienelahoraactualparaunahora,minutoysegundoespecíficos.
Sintaxis
TimeSerial(hora,minuto,segundo)
LasintaxisdelafunciónTimeSerialconstadelossiguientesargumentosconnombre:
Parte Descripciónhora Requerido;Variant(Integer).Númeroentre0(12:00a.m.)y23
(11:00p.m.),inclusiveounaexpresiónnumérica.minuto Requerido;Variant(Integer).Cualquierexpresiónnumérica.segundo Requerido;Variant(Integer).Cualquierexpresiónnumérica.
Comentarios
Paraespecificarunahora,como11:59:59,elintervalodenúmerosparacadaargumentodeTimeSerialdeberíaestarenelintervalonormalmenteaceptadoparalaunidad;esdecir,0–23parahorasy0–59paraminutosysegundos.Sinembargo,puedeespecificarhorasrelativasparacadaargumento,usandocualquierexpresiónnuméricaquerepresentealgunashoras,minutososegundosantesodespuésdeciertahora.Elejemplosiguienteusaexpresionesenlugardenúmerosdehoraabsoluta.LafunciónTimeSerialdevuelveunahoraquees15(-15)minutosmenosqueseishorasantesdelmediodía(12-6),ó5:45:00a.m.
TimeSerial(12-6,-15,0)
Cuandoalgúnargumentosuperaelintervalonormalmenteaceptadoparaél,seincrementahastalasiguienteunidadmayor.Porejemplo,siespecifica75minutos,seevalúacomounahoray15minutos.Noobstante,siunsoloargumentoestáfueradelintervalo-32.768a32.767osilahoraespecificadaporlostresargumentos,directamenteomedianteexpresión,hacequelafechaquedefueradelintervaloaceptabledevalores,seproduceunerror.
TimeValue(Función)
DevuelveuntipoVariant(Date)quecontienelahora.
Sintaxis
TimeValue(hora)
Elargumentohoraesnormalmenteunaexpresióndecadenaquerepresentaunahoradesdelas0:00:00(12:00:00a.m.)alas23:59:59(11:59:59p.m.),inclusive.Sinembargo,horatambiénpuedesercualquierexpresiónquepuedarepresentar
unahoraeneseintervalo.SihoracontieneNull,lafuncióndevolveráNull.
Comentarios
Puedeintroducirhorasválidasusandounrelojde12horasode24horas.Porejemplo,"2:24p.m."y"14:24"sonargumentosválidosdehora.
Sielargumentohoracontieneinformacióndefecha,TimeValuenodevuelveestainformación.Sinembargo,sihoraincluyeinformaciónnoválidadefecha,ocurriráunerror.
TypeName(Función)
Devuelveunacadena(String)queproporcionainformaciónacercadeunavariable.
Sintaxis
TypeName(nombrevariable)
Elargumentonombrevariablerequerido,esuntipodedatosVariantquecontienecualquiervariableexceptounavariabledeuntipodefinidoporelusuario.
Comentarios
LacadenadevueltaporlafunciónTypeNamepuedesercualquieradelassiguientes:
Cadenadevuelta Lavariablecontienetipodeobjeto UnobjetocuyotipoestipoobjetoByte UnvalorbyteInteger UnenteroLong UnenterolargoSingle UnnúmerodepuntoflotantedeprecisiónsimpleDouble UnnúmerodepuntoflotantedeprecisióndobleCurrency Unvalordemoneda
Decimal UnvalordecimalDate UnvalorfechaString UnacadenaBoolean UnvalorbooleanoError UnvalordeerrorEmpty NoinicializadoNull DatosnoválidosObject UnobjetoDesconocido UnobjetocuyotipoesdesconocidoNothing Unavariabledequenohacereferenciaaun
objeto
Sinombrevariableesunamatriz,lacadenadevueltapuedesercualquieradelasposibles(oVariant)conunparéntesisvacíoañadido.Porejemplo,sinombrevariableesunamatrizdenúmerosenteros,lafunciónTypeNamedevuelve"Integer()".
UBound(Función)
DevuelveuntipoLongquecontieneelmayorsubíndicedisponibleparaladimensiónindicadadeunamatriz.
Sintaxis
UBound(nombre_matriz[,dimensión])
LasintaxisdelafunciónUBoundconstadelassiguientespartes:
Parte Descripción
nombre_matriz
Requerido.Nombredelavariabledematriz;siguelasconvencionesestándardenombresdevariable.
dimensión Opcional;Variant(Long).Númeroenteroqueindicaladimensióncuyolímitesuperiorsedevolverá.Use1paralaprimeradimensión,2paralasegundayasísucesivamente.Sidimensiónseomite,sesuponequees1.
Comentarios
LafunciónUBoundseutilizajuntoconlafunciónLBoundparadeterminareltamañodeunamatriz.UselafunciónLBoundparaencontrarellímiteinferiordeladimensióndeunamatriz.
UBounddevuelvelosvaloresenumeradosenlatablasiguienteparaunamatrizconlasdimensionessiguientes:
DimA(1To100,0To3,-3To4)
Instrucción ValordevueltoUBound(A,1) 100UBound(A,2) 3UBound(A,3) 4
UCase(Función)
DevuelveuntipoVariant(String)quecontieneunacadenaespecificadaquesehaconvertidoamayúsculas.
Sintaxis
UCase(cadena)
Elargumentocadenanecesarioescualquierexpresióndecadenaválida.SicadenacontieneNull,sedevuelveNull.
Comentarios
Sóloseconviertenamayúsculaslasletrasminúsculas.Lasletrasmayúsculasoloscaracteresquenosonletrasnosufrencambios.
Val(Función)
Devuelvelosnúmeroscontenidosenunacadenacomounvalornuméricodeltipoadecuado.
Sintaxis
Val(cadena)
Elargumentoobligatoriocadenaescualquierexpresióndecadenaválida.
Comentarios
LafunciónValdejadeleerlacadenaenelprimercarácterquenopuedereconocercomopartedeunnúmero.Lossímbolosycaracteresqueseconsideranamenudopartedevaloresnuméricos,comosignosdemonedaycomas,nosereconocen.Sinembargo,lafunciónreconocelosprefijosdebase&O(paraoctal)y&H(parahexadecimal).Losespaciosenblanco,lostabuladores
ylosavancesdelíneaseeliminandelargumento.
Losiguientedevuelveelvalor1615198:
Val("1615198CalleN.E.")
Enelcódigoquesemuestraacontinuación,Valdevuelveelvalordecimal-1correspondientealvalorhexadecimalentreparéntesis:
Val("&HFFFF")
NotaLafunciónValsóloreconoceelpunto(.)comoseparadordecimalválido.Cuandoseutilizanseparadoresdecimalesdiferentes,comoenaplicacionesinternacionales,debeutilizarCDblparaconvertirunacadenaaunnúmero.
VarType(Función)
Devuelveunentero(Integer)queindicaelsubtipodeunavariable.
Sintaxis
VarType(nombrevariable)
Elargumentonombrevariablerequerido,esuntipoVariantquecontienecualquiervariableexceptounavariabledeuntipodefinidoporelusuario.
Valoresdevueltos
Constante Valor DescripciónvbEmpty 0 Empty(noinicializado)vbNull 1 Null(datosnoválidos)vbInteger 2 EnterovbLong 3 EnterolargovbSingle 4 Unnúmerodecomaflotantedeprecisión
simplevbDouble 5 Unnúmerodecomaflotantedeprecisión
doblevbCurrency 6 ValordemonedavbDate 7 ValordefechavbString 8 Cadena
vbObject 9 ObjetovbError 10 ValordeerrorvbBoolean 11 ValorbooleanovbVariant 12 Variant(utilizadasolamenteconmatricesde
variantes)vbDataObject 13 UnobjetodeaccesoadatosvbDecimal 14 ValordecimalvbByte 17 ValordebytevbUserDefinedType 36 Variantesquecontienentiposdefinidosporel
usuariovbArray 8192 Matriz
NotaEstasconstantesestánespecificadasporVisualBasicparaaplicaciones.Losnombressepuedeutilizarencualquierposiciónensucódigoenlugardelosvaloresactuales.
Comentarios
LafunciónVarTypenuncadevuelveporsímismaelvalorparavbArray.Siempreseagregaaalgúnotrovalorparaindicarunamatrizdeuntipoparticular.LaconstantevbVariantsolamentesedevuelvejuntoconvbArrayparaindicarqueelargumentodelafunciónVarTypeesunamatrizdeltipoVariant.Porejemplo,elvalordevueltoporunamatrizdeenterossecalculacomovbInteger+vbArray,o8194.Siunobjetotieneunapropiedadpredeterminada,VarType(objeto)devuelveeltipodelapropiedadpredeterminadadelobjeto.
Weekday(Función)
DevuelveunvalordetipoVariant(Integer)quecontieneunnúmeroenteroquerepresentaeldíadelasemana.
Sintaxis
Weekday(fecha,[primerdíasemana])
LasintaxisdelafunciónWeekdayconstadelossiguientesargumentosconnombre:
Parte Descripciónfecha Requerido.Variant,expresiónnumérica,expresiónde
cadenaocualquiercombinaciónquepuederepresentarunafecha.SifechacontieneNull,lafuncióndevolveráNull.
primerdíasemana Opcional.Unaconstantequeespecificaelprimerdíadelasemana.Sinoseespecifica,seasumeelvalorvbSunday.
Valores
Elargumentoprimerdíasemanatieneestosvalores:
Constante Valor DescripciónvbUseSystem 0 Utiliceconfiguracióndela
APIdeNLS.vbSunday 1 Domingo
(predeterminado)vbMonday 2 LunesvbTuesday 3 MartesvbWednesday 4 MiércolesvbThursday 5 JuevesvbFriday 6 ViernesvbSaturday 7 Sábado
Valoresdevueltos
LafunciónWeekdaypuededevolvercualquieradeestosvalores:
Constante Valor DescripciónvbSunday 1 DomingovbMonday 2 LunesvbTuesday 3 MartesvbWednesday 4 MiércolesvbThursday 5 JuevesvbFriday 6 ViernesvbSaturday 7 Sábado
Comentarios
SilaconfiguracióndelapropiedadCalendaresgregoriano,elenterodevueltorepresentaeldíadelasemanagregorianoparaelargumentofecha.SielcalendarioesHijri,elenterodevueltorepresentaeldíaHijridelasemanaparaelargumentofecha.ParafechasHijri,elnúmerodeargumentoescualquierexpresiónnuméricaquepuedarepresentarunafechay/uhoradesde1/1/100(gregoriano2deagostode1718)a4/3/9666(gregoriano31dediciembredel9999).
WeekdayName(Función)
Descripción
Devuelveunacadenaqueindicaeldíadelasemanaespecificado.
Sintaxis
WeekdayName(díaDeLaSemana,abreviar,primerDíaDeLaSemana)
LasintaxisdelafunciónWeekdayNameconstadelassiguientespartes:
Parte DescripcióndíaDeLaSemana Requerido.Ladesignaciónnuméricaparaeldíadela
semana.ElvalornuméricodecadadíadependedelaconfiguracióndelvalorprimerDíaDeLaSemana.
abreviar Opcional.UnvalorBooleanqueindicasiseabreviaelnombredeldíadelasemana.Siseomite,elvalorpredeterminadoesFalse,quesignificaqueelnombredeldíadelasemananoseabrevia.
primerDíaDeLaSemana Opcional.Unvalornuméricoqueindicaelprimerdíadelasemana.VealasecciónValoresparaconsultarlosvaloresposibles.
Valores
ElargumentoprimerDíaDeLaSemanapuedetenerlosvaloressiguientes:
Constante Valor DescripciónvbUseSystem 0 UtilizarlaconfiguracióndelaAPINational
LanguageSupport(NLS).vbSunday 1 Domingo(predeterminado).vbMonday 2 Lunes.vbTuesday 3 Martes.vbWednesday 4 Miércoles.vbThursday 5 Jueves.vbFriday 6 Viernes.vbSaturday 7 Sábado.
Year(Función)
DevuelveunvalordetipoVariant(Integer)quecontieneunnúmeroenteroquerepresentaelaño.
Sintaxis
Year(fecha)
ElargumentofechaescualquiervalordetipoVariant,expresiónnumérica,expresióndecadenaocualquiercombinaciónquepuederepresentarunafecha.SifechacontieneNull,lafuncióndevolveráNull.
NotaSilaconfiguracióndelapropiedadCalendaresgregoriano,elenterodevueltorepresentaeldíadelasemanagregorianoparaelargumentofecha.SielcalendarioesHijri,elenterodevueltorepresentaeldíaHijridelasemanaparaelargumentofecha.ParafechasHijri,elnúmerodeargumentoescualquierexpresiónnuméricaquepuedarepresentarunafechay/uhoradesde1/1/100(gregoriano2deagostode1718)a4/3/9666(gregoriano31dediciembredel9999).
Funcionesdeconversión
Asc(Función)
CBool(Función)
CByte(Función)
CCur(Función)
CDate(Función)
CDec(Función)
CDbl(Función)
Chr(Función)
CInt(Función)
CLng(Función)
CSng(Función)
CStr(Función)
CVar(Función)
CVErr(Función)
Format(Función)
Hex(Función)
Oct(Función)
Str(Función)
Val(Función)
Funcionesmatemáticas
Abs(Función)
Atn(Función)
Cos(Función)
Exp(Función)
Fix(Función)
Int(Función)
Log(Función)
Rnd(Función)
Sgn(Función)
Sin(Función)
Sqr(Función)
Tan(Función)
Funcionesmatemáticasderivadas
Funcionesmatemáticasderivadas
Lasiguienteesunalistadefuncionesmatemáticasnointrínsecasquepuedenderivarsedefuncionesmatemáticasintrínsecas:
Función DerivadasequivalentesSecante Sec(X)=1/Cos(X)Cosecante Cosec(X)=1/Sin(X)Cotangente Cotan(X)=1/Tan(X)Senoinverso Arcsin(X)=Atn(X/Sqr(-X*X+1))Cosenoinverso Arccos(X)=Atn(-X/Sqr(-X*X+1))+2*Atn(1)Secanteinversa Arcsec(X)=Atn(X/Sqr(X*X–1))+Sgn((X)–1)
*(2*Atn(1))Cosecanteinversa Arccosec(X)=Atn(X/Sqr(X*X–1))+(Sgn(X)–
1)*(2*Atn(1))Cotangenteinversa Arccotan(X)=Atn(X)+2*Atn(1)Senohiperbólico HSin(X)=(Exp(X)–Exp(–X))/2Cosenohiperbólico HCos(X)=(Exp(X)+Exp(–X))/2Tangentehiperbólica HTan(X)=(Exp(X)–Exp(–X))/(Exp(X)+Exp(–
X))Secantehiperbólica HSec(X)=2/(Exp(X)+Exp(–X))Cosecantehiperbólica HCosec(X)=2/(Exp(X)–Exp(–X))Cotangentehiperbólica HCotan(X)=(Exp(X)+Exp(–X))/(Exp(X)–
Exp(–X))Senohiperbólicoinverso HArcsin(X)=Log(X+Sqr(X*X+1))Cosenohiperbólicoinverso
HArccos(X)=Log(X+Sqr(X*X–1))
Tangentehiperbólicainversa
HArctan(X)=Log((1+X)/(1–X))/2
Secantehiperbólicainversa
HArcsec(X)=Log((Sqr(–X*X+1)+1)/X)
Cosecantehiperbólicainversa
HArccosec(X)=Log((Sgn(X)*Sqr(X*X+1)+1)/X)
Cotangentehiperbólicainversa
HArccotan(X)=Log((X+1)/(X–1))/2
LogaritmoenbaseN LogN(X)=Log(X)/Log(N)
Operadoresaritméticos
^(operador)
*(operador)
/(operador)
\(operador)
Mod(operador)
+(operador)
-(operador)
Operadoresdeconcatenación
&(operador)
+(operador)
Operadoreslógicos
And(operador)
Eqv(operador)
Imp(operador)
Not(operador)
Or(operador)
Xor(operador)
Prioridaddelosoperadores
Cuandohayvariasoperacionesenunamismaexpresión,cadapartedelamismaseevalúayseresuelveenunordenpredeterminadosegúnlaprioridaddelosoperadores.
Cuandohayexpresionesquecontienenoperadoresdemásdeunacategoría,seresuelvenanteslasquetienenoperadoresaritméticos,acontinuaciónlasquetienenoperadoresdecomparaciónyporúltimolasdeoperadoreslógicos.Losoperadoresdecomparacióntienentodoslamismaprioridad;esdecir,seevalúandeizquierdaaderecha,enelordenenqueaparecen.Losoperadoreslógicosyaritméticosseevalúanenelsiguienteordendeprioridad:
Aritméticos Comparación LógicosExponenciación(^) Igualdad(=) NotNegación(–) Desigualdad(<>) AndMultiplicacióny Menorque(<) Or
división(*,/)Divisióndeenteros(\)
Mayorque(>) Xor
Móduloaritmético(Mod)
Menoroigualque(<=)
Eqv
Adiciónysubstracción(+,–)
Mayoroigualque(>=)
Imp
Concatenacióndecadenas(&)
LikeIs
Cuandohaymultiplicaciónydivisiónenlamismaexpresión,cadaoperaciónseevalúaamedidaqueaparece,deizquierdaaderecha.Delmismomodo,cuandosepresentanadicionesysubstraccionesenunamismaexpresión,cadaoperaciónseevalúatalcomoaparecendeizquierdaaderecha.Esposibleusarparéntesisparasaltarelordendepreferenciayforzarquealgunaspartesdeunaexpresiónseevalúenantesqueotras.Lasoperacionesentreparéntesisserealizanantesquelasdefuera.Sinembargo,dentrodelosparéntesis,laprecedenciadelosoperadoressemantiene.
Eloperadordeconcatenacióndecadenas(&)noesrealmenteunoperadoraritmético,peroenordendeprioridadseencuentraacontinuacióndetodoslosoperadoresaritméticosyantesquetodoslosoperadoresdecomparación.
EloperadorLike,apesardetenerlamismaprioridadquelosoperadoresdecomparación,esenrealidadunoperadordecoincidenciadepatrones.
EloperadorIsesunoperadordecomparacióndereferenciadeobjetos.Nocomparaobjetosnivaloresdeobjetos;sólodeterminasidosreferenciasdeobjetoserefierenalmismoobjeto.
Resumendelosoperadores
Operadores DescripciónOperadoresaritméticos
Operadoresutilizadosparaejecutarcálculosmatemáticos.
Operadoresdecomparación
Operadoresutilizadosparaefectuarcomparaciones.
Operadoresdeconcatenación
Operadoresutilizadosparacombinarcadenasdecaracteres.
Operadoreslógicos
Operadoresusadospararealizaroperacioneslógicas.
Resumendetiposdedatos
Latablasiguientemuestralostiposdedatoscompatibles,incluyendoeltamañodealmacenamientoyelintervalo.
TipodedatosTamañodealmacenamiento Intervalo
Byte 1byte 0a255Boolean 2bytes TrueoFalseInteger 2bytes -32,768a32,767Long(enterolargo)
4bytes -2,147,483,648a2,147,483,647
Single(comaflotante/precisiónsimple)
4bytes -3,402823E38a–1,401298E-45paravaloresnegativos;1,401298E-45a3,402823E38paravalorespositivos
Double(comaflotante/precisióndoble)
8bytes -1.79769313486231E308a-4,94065645841247E-324paravaloresnegativos;4,94065645841247E-324a1,79769313486232E308paravalorespositivos
Currency 8bytes -922.337.203.685.477,5808a
(enteroaescala)
922.337.203.685.477,5807
Decimal 14bytes +/-79.228.162.514.264.337.593.543.950.335sinpuntodecimal;+/-7,9228162514264337593543950335con28posicionesaladerechadelsignodecimal;elnúmeromáspequeñodistintodeceroes+/-0,0000000000000000000000000001
Date 8bytes 1deenerode100a31dediciembrede9999Object 4bytes CualquierreferenciaatipoObjectString(longitudvariable)
10bytes+longituddelacadena
Desde0a2.000millones
String(longitudfija)
Longituddelacadena
Desde1a65.400aproximadamente
Variant(connúmeros)
16bytes CualquiervalornuméricohastaelintervalodeuntipoDouble
Variant(concaracteres)
22bytes+longituddelacadena
ElmismointervaloqueparauntipoStringdelongitudvariable
Definidoporelusuario(utilizandoType)
Númerorequeridoporloselementos
Elintervalodecadaelementoeselmismoqueelintervalodesutipodedatos.
NotaLasmatricesdecualquiertipodedatosrequieren20bytesdememoriamáscuatrobytesparacadadimensióndematriz,máselnúmerodebytesqueocupanlospropiosdatos.Puedecalcularlamemoriaqueocupanlosdatosmultiplicandoelnúmerodeelementosdedatosporeltamañodecadaelemento.Porejemplo,losdatosdeunamatrizunidimensionalqueconstendecuatroelementosdedatostipoIntegerdedosbytescadauno,ocupanochobytes.Losochobytesquerequierenlosdatosmáslos24bytesnecesariosparalamatrizsumanunrequisitototaldememoriade32bytesparadichamatriz.
UntipoVariantquecontieneunamatizrequiere12bytesmásquelamatrizporsísola.
NoteUsetheStrConvfunctiontoconvertonetypeofstringdatatoanother.
Conversión,resumendepalabrasclave
Acción PalabrasclaveValorANSIacadena. ChrCadenaaminúsculasoamayúsculas.
Format,LCase,UCase
Fechaanúmerodeserie.
DateSerial,DateValue
Númerodecimalaotrabase.
Hex,Oct
Númeroacadena. Format,StrUntipodedatoaotro. CBool,CByte,CCur,CDate,CDbl,CDec,CInt,CLng,
CSng,CStr,CVar,CVErr,Fix,IntFechaadía,mes,díadelasemanaoaño.
Day,Month,Weekday,Year
Horaahora,minutoosegundo.
Hour,Minute,Second
CadenaavalorASCII. AscCadenaanúmero. ValHoraanúmerodeserie.
TimeSerial,TimeValue
Directivasdelcompilador,resumendepalabrasclave
Acción PalabrasclaveDefinirunaconstantedelcompilador.
#Const
Compilarbloquesseleccionadosdecódigo.
#If...Then...#Else
Directoriosyarchivos,resumendepalabrasclave
Acción PalabrasclaveCambiareldirectorioolacarpeta.
ChDir
Cambiarlaunidad. ChDriveCopiarunarchivo. FileCopyCrearundirectorioounacarpeta.
MkDir
Quitarundirectorioounacarpeta.
RmDir
Cambiarelnombredeunarchivo,undirectorioounacarpeta.
Name
Devolverlarutadeaccesoactual.
CurDir
Devolverlafechaylahoradelarchivo.
FileDateTime
Devolverlosatributosdeunarchivo,directoriooetiqueta.
GetAttr
Devolvereltamañodelarchivo.
FileLen
Devolverelnombredelarchivoolaetiquetadevolumen.
Dir
Establecerla SetAttr
informacióndeatributodeunarchivo.
Diversas,resumendepalabrasclave
Acción PalabrasclaveProcesareventospendientes. DoEventsEjecutarotrosprogramas. AppActivate,ShellEnviarpulsacionesdeteclasaunaaplicación.
SendKeys
Hacersonarunpitidoenelequipo.
Beep
Sistema. EnvironProporcionarunacadenaenlalíneadecomandos.
Command
Automatización. CreateObject,GetObjectColor. QBColor,RGB
Entradaysalida,resumendepalabrasclave
Acción PalabrasclaveTeneraccesoocrearunarchivo.
Open
Cerrararchivos. Close,ResetControlarlaaparienciadelresultado.
Format,Print,Print#,Spc,Tab,Width#
Copiarunarchivo. FileCopyObtenerinformacióndeunarchivo.
EOF,FileAttr,FileDateTime,FileLen,FreeFile,GetAttr,Loc,LOF,Seek
Administrararchivos. Dir,Kill,Lock,Unlock,NameLeerunarchivo. Get,Input,Input#,LineInput#Devolvereltamañodeunarchivo.
FileLen
Estableceruobtenerlosatributosdeunarchivo.
FileAttr,GetAttr,SetAttr
Establecerlaposicióndelecturayescrituraenunarchivo.
Seek
Escribirenunarchivo. Print#,Put,Write#
Errores,resumendepalabrasclave
Acción PalabrasclaveGenerarerroresentiempodeejecución.
Clear,Error,Raise
Obtenermensajesdeerror.
Error
Proporcionarinformacióndelerror.
Err
DevolveruntipoVariantdeError.
CVErr
Interceptarerroresentiempodeejecución.
OnError,Resume
Comprobareltipo. IsError
Fechasyhoras,resumendepalabrasclave
Acción PalabrasclaveObtenerlafechaolahoraactuales.
Date,Now,Time
Realizarcálculosdefechas.
DateAdd,DateDiff,DatePart
Devolverunafecha. DateSerial,DateValueDevolverunahora. TimeSerial,TimeValueEstablecerlafechaolahora.
Date,Time
Medireltiempodeunproceso.
Timer
Financieras,resumendepalabrasclave
Acción PalabrasclaveCalcularladepreciación.
DDB,SLN,SYD
Calcularelvalorfuturo.
FV
Calcularlatasadeinterés.
Rate
Calcularlatasainternaderetorno.
IRR,MIRR
Calcularelnúmerodepagos.
NPer
Calcularlospagos. IPmt,Pmt,PPmtCalcularelvalorpresente.
NPV,PV
Flujodecontrol,resumendepalabrasclave
Acción PalabrasclaveBifurcar. GoSub...Return,GoTo,OnError,On...GoSub,
On...GoToSalirohacerunapausaenlaejecucióndeunprograma.
DoEvents,End,Exit,Stop
Realizarbucles. Do...Loop,For...Next,ForEach...Next,While...Wend,With
Tomardecisiones. Choose,If...Then...Else,SelectCase,SwitchUtilizarprocedimientos.
Call,Function,PropertyGet,PropertyLet,PropertySet,Sub
Manipulacióndecadenas,resumendepalabrasclave
Acción PalabrasclaveComparardoscadenas.
StrComp
Convertircadenas. StrConvConvertiraminúsculasomayúsculas.
Format,LCase,UCase
Crearunacadenadecaracteresrepetidos.
Space,String
Averiguareltamañodeunacadena.
Len
Darformatoaunacadena.
Format
Justificarunacadena. LSet,RSetManipularcadenas. InStr,Left,LTrim,Mid,Right,RTrim,TrimEstablecerlasreglasdecomparacióndecadenas.
OptionCompare
TrabajarconvaloresASCIIyANSI.
Asc,Chr
Matemáticas,resumendepalabrasclave
Acción PalabrasclaveDerivarfuncionestrigonométricas.
Atn,Cos,Sin,Tan
Realizarcálculosgenerales.
Exp,Log,Sqr
Generarnúmerosaleatorios.
Randomize,Rnd
Obtenerelvalorabsoluto.
Abs
Obtenerelsignodeunaexpresión.
Sgn
Realizarconversionesnuméricas.
Fix,Int
Matrices,resumendepalabrasclave
Acción PalabrasclaveComprobarunamatriz.
IsArray
Crearunamatriz. ArrayCambiarellímiteinferiorpredeterminado.
OptionBase
Declarareinicializarunamatriz.
Dim,Private,Public,ReDim,Static
Encontrarloslímitesdeunamatriz.
LBound,UBound
Reinicializarunamatriz.
Erase,ReDim
ObjetoCollection,resumendepalabrasclave
Acción PalabrasclaveCrearunobjetoCollection.
Collection
Agregarunobjetoaunacolección.
Add
Quitarunobjetodeunacolección.
Remove
Hacerreferenciaaunobjetodeunacolección.
Item
Operadores,resumendepalabrasclave
Acción PalabrasclaveRealizaroperacionesaritméticas.
^,–,*,/,\,Mod,+,&,=
Realizarcomparaciones.
=,<>,<,>,<=,>=,Like,Is
Realizaroperacioneslógicas.
Not,And,Or,Xor,Eqv,Imp
Palabrasclaveportarea
Categoría DescripciónMatrices Crear,definiryutilizarmatrices.Directivasdelcompilador
Controlarelcomportamientodelcompilador.
Flujodecontrol Realizarbuclesycontrolarelflujodelprocedimiento.Conversión Convertirnúmerosytiposdedatos.Tiposdedatos TiposdedatosysubtiposVariant.Fechasyhoras Convertiryutilizarexpresionesdefechayhora.Directoriosyarchivos Controlarelsistemadearchivosyprocesararchivos.Errores Interceptarydevolvervaloresdeerror.Financieras Realizarcálculosfinancieros.Entradaysalida Recibirunaentradaymostraroimprimirelresultado.Matemáticas Realizarcálculostrigonométricosuotroscálculos
matemáticos.Diversas Iniciarotrasaplicacionesyprocesareventos.Operadores Compararexpresionesyotrasoperaciones.Manipulacióndecadenas
ManipularcadenasydatosdetipoString.
Variablesyconstantes Declararydefinirvariablesyconstantes.
Registro,resumendepalabrasclave
Acción PalabrasclaveEliminarconfiguracionesdelprograma.
DeleteSetting
Leerconfiguracionesdelprograma.
GetSetting,GetAllSettings
Guardarconfiguracionesdelprograma.
SaveSetting
Tiposdedatos,resumendepalabrasclave
Acción PalabrasclaveConvertirentretiposdedatos.
CBool,CByte,CCur,CDate,CDbl,CDec,CInt,CLng,CSng,CStr,CVar,CVErr,Fix,Int
Establecertiposdedatosintrínsecos.
Boolean,Byte,Currency,Date,Double,Integer,Long,Object,Single,String,Variant(predeterminado)
Comprobarlostiposdedatos.
IsArray,IsDate,IsEmpty,IsError,IsMissing,IsNull,IsNumeric,IsObject
Variablesyconstantes,resumendepalabrasclave
Acción PalabrasclaveAsignarunvalor. LetDeclararvariablesoconstantes.
Const,Dim,Private,Public,New,Static
Declararunmódulocomoprivado.
OptionPrivateModule
ObtenerinformaciónsobreuntipoVariant.
IsArray,IsDate,IsEmpty,IsError,IsMissing,IsNull,IsNumeric,IsObject,TypeName,VarType
Hacerreferenciaalobjetoactual.
Me
Solicitardeclaracionesexplícitasdevariables.
OptionExplicit
Estableceruntipodedatospredeterminado.
Deftipo
AppActivate(Instrucción)
Activaunaventanadeaplicación.
Sintaxis
AppActivatetitle[,wait]
LasintaxisdelainstrucciónAppActivateconstadeestosargumentosconnombre:
Parte Descripción
title Requerido.Expresióndecadenaqueespecificaeltítulodelabarradetítulodelaventanadeaplicaciónquedeseaactivar.Además,esposibleutilizarelIddetareadevueltoporlafunciónShellenlugardelargumentotitleparaactivarunaaplicación.
wait Opcional.ValorBooleanqueespecificasilaaplicaciónquehacelallamadatieneelenfoqueantesdeactivarotra.SiespecificaFalse(predeterminado),seactivainmediatamentelaaplicaciónespecificada,aunquelaaplicaciónquehacelallamadanotengaelenfoque.SiseespecificaTrue,laaplicaciónquehacelallamadaesperahastaquetengaelenfoqueyluegoactivalaaplicaciónespecificada.
Comentarios
LainstrucciónAppActivatecambiaelenfoquealaaplicaciónoventanaespecificada,peronolamaximizaominimiza.Elenfoquesedesplazadelaventanadeaplicaciónactivadacuandoelusuarioejecutaalgunaacciónquecambiaelenfoqueoquecierralaventana.SeutilizalafunciónShellparainiciarunaaplicaciónyestablecerelestilodelaventana.
Paradeterminarquéaplicaciónsevaaactivar,secomparatitleconlacadenadetítulodecadaaplicaciónquehayenejecución.Sinoseencuentraunacorrespondenciaexacta,seactivalaaplicacióncuyacadenatítulocomienceportitle.Sihaymásdeunainstanciadelaaplicacióncuyonombreestitle,seactivacualquieradeellas,deformaarbitraria.
Beep(Instrucción)
Emiteunsonidoporelaltavozdelequipo.
Sintaxis
Beep
Comentarios
Lafrecuenciayduracióndelsonidoqueseemitedependedelhardwareyelsoftwaredelsistema,quepuedevariardeunequipoaotro.
Call(Instrucción)
TransfiereelcontrolaunprocedimientoSub,aunprocedimientoFunctionoaunprocedimientobibliotecadevínculosdinámicos(DLL).
Sintaxis
[Call]nombre[listaargumentos]
LasintaxisdelainstrucciónCallconstadelassiguientespartes:
Parte DescripciónCall Opcional;palabraclave.Siseespecifica,listaargumentosse
debecolocarentreparéntesis.Porejemplo: CallMiProced(0)
nombre Requerido.Nombredelprocedimientoalquesetransfiereelcontrol.
listaargumentos Opcional.Listadevariables,matricesoexpresionesdelimitadasporcomas,quesevanatransferiralprocedimiento.LoscomponentesdelistaargumentospuedenincluirlaspalabrasclaveByValoByRefparadescribirlaformaenlaqueelprocedimientollamadotratalosargumentos.Sinembargo,ByValyByRefsepuedenutilizarconlainstrucciónCallsolamentecuandosellamaaunprocedimientodeDLL.EnMacintosh,ByValyByRefpuedenutilizarseconCallcuandoserealizaunallamadaaunrecursodelcódigodeMacintosh.
Comentarios
NoesnecesarioqueutilicelapalabraclaveCallcuandollamaaunprocedimiento.Sinembargo,siutilizalapalabraclaveCallparallamaraun
procedimientoquerequierelosargumentos,listaargumentosdebeestarentreparéntesis.SiomitelapalabraclaveCall,debeomitirtambiénlosparéntesisdelistaargumentos.SiutilizacualquieradelasformasdelasintaxisCallparallamaracualquierfunciónintrínsecaoaunafuncióndefinidaporelusuario,sedescartaráelvalordevueltoporlafunción.
Paratransferirunamatrizcompletaaunprocedimiento,utiliceelnombredelamatrizseguidadeparéntesisvacíos.
ChDir(Instrucción)
Cambiaeldirectorioocarpetaactual.
Sintaxis
ChDirruta
Elargumentorequeridoruta,esunaexpresióndecadenaqueidentificaeldirectorioocarpetaquevaaserelnuevodirectorioocarpetapredeterminado.Larutapuedeincluirlaunidaddedisco.Sinoseespecificalaunidad,lainstrucciónChDircambiaeldirectorioocarpetapredeterminadodelaunidadactual.
Comentarios
LainstrucciónChDircambiaeldirectoriopredeterminado,peronolaunidadpredeterminada.Porejemplo,silaunidaddediscopredeterminadaesC,la
siguienteinstruccióncambiaeldirectoriopredeterminadoenlaunidadD,peroCcontinúasiendolaunidadpredeterminada:
ChDir"D:\TMP"
EnelPowerMacintosh,launidadpredeterminadasiemprecambiaalaunidadespecificadaenruta.Lasespecificacionesdelarutacompletacomienzanconelnombredelvolumenylasrutasrelativascomienzancondospuntos(:).ChDirresuelvecualquieraliasespecificadoenlaruta:
ChDir"UnidadMac:Tmp"'EnMacintosh.
Observequecuandorealicecambiosenlosdirectoriosrelativos,seutilizansímbolosdiferentesenMicrosoftWindowsyenMacintosh:
ChDir".."'SubeundirectorioenMicrosoftWindows.
ChDir"::"'SubeundirectorioenMacintosh.
ChDrive(Instrucción)
Cambialaunidaddediscoactual.
Sintaxis
ChDriveunidad
Elargumentorequeridounidad,esunaexpresióndecadenaqueespecificaunaunidaddediscoexistente.Sisesuministraunargumentodelongitudcero(""),launidaddediscoactualnocambia.Sielargumentounidadesunacadenademúltiplescaracteres,lainstrucciónChDrivesolamenteutilizalaprimeraletra.
EnMacintosh,ChDrivecambialacarpetaactualalacarpetaraízdelaunidadespecificada.
Close(Instrucción)
Terminalasoperacionesdeentrada/salida(E/S)enunarchivoabiertoconlainstrucciónOpen.
Sintaxis
Close[listanúmerosarchivos]
Elargumentoopcionallistanúmerosarchivospuedeestarconstituidoporunoomásnúmerosdearchivousandolasiguientesintaxis,dondenúmeroarchivoescualquiernúmerodearchivoválido:
[[#]númeroarchivo][,[#]númeroarchivo]...
Comentarios
Siomitelistanúmerosarchivos,secierrantodoslosarchivosactivosabiertoscon
lainstrucciónOpen.
CuandosecierranarchivosqueseabrieronparaOutputoAppend,elbúferfinaldesalidasegrabaenelbúferdelsistemaoperativoquecorrespondeaesearchivo.Todoelespaciodelbúferasociadoconelarchivocerradoselibera.
CuandoseejecutalainstrucciónClose,laasociacióndeunarchivoconsunúmerodearchivotermina.
Const(Instrucción)
Declaralasconstantesquesepuedenutilizarenlugardelosvaloresliterales.
Sintaxis
[Public|Private]Constnombre_constante[Astipo]=expresión
LasintaxisdelainstrucciónConstconstadelassiguientespartes:
Parte DescripciónPublic Opcional.Palabraclaveutilizadaenunniveldemódulopara
declararconstantesqueestándisponiblesparatodoslosprocedimientosencualquiermódulo.Nosepermiteenprocedimientos.
Private Opcional.Palabraclaveutilizadaaniveldemóduloparadeclararconstantesquesóloestándisponiblesdentrodelmódulodondesehaceladeclaración.Nosepermiteenprocedimientos.
nombre_constante
Requerido.Nombredelaconstante;siguelasconvencionesdenombreestándardevariable.
tipo Opcional.Tipodedatosdelaconstante;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String,oVariant.UseunacláusulaAstipodistintaparacadaconstantequedeclare.
expresión Requerida.Literal,otraconstanteocualquiercombinación,incluyendooperadoresaritméticosológicosexceptoIs.
Comentarios
Lasconstantessonprivadasdemanerapredeterminada.Dentrodelosprocedimientos,lasconstantessonsiempreprivadas;esimposiblecambiarsuvisibilidad.Enlosmódulosestándar,lavisibilidadpredeterminadadelasconstantesaniveldemódulosepuedemodificarmediantelapalabraclavePublic.Sinembargo,enlosmódulosdeclase,lasconstantessólopuedenserprivadasyesimposiblecambiarsuvisibilidadmediantelapalabraclavePublic.
Paracombinarvariasdeclaracionesdeconstantesenlamismalínea,separecadaasignacióndeconstanteconunacoma.Silasdeclaracionesdeconstantessecombinandeestaforma,laspalabrasclavePublicoPrivate,siseusan,seaplicanatodasellas.
Noesposibleusarvariables,funcionesdefinidasporelusuarioofuncionesintrínsecasdeVisualBasic(comoChr)enexpresionesasignadasaconstantes.
NotaLasconstantesfacilitanladocumentacióndelprogramaylohacenfácildemodificar.Adiferenciadelasvariables,lasconstantesnosepuedencambiarinadvertidamentemientraselprogramaestáenejecución.
Sinodeclaraexplícitamenteeltipodeconstante(conAstipo),seleasignaráalaconstanteeltipodedatosmásapropiadoparalaexpresióndada.
LasconstantesquesedeclaranenlosprocedimientosSub,FunctionoPropertyseconsideranlocalesdeeseprocedimiento.Unaconstantequesedeclarafueradeunprocedimientosedefiniráparalatotalidaddelmóduloenelquesedeclara.
Puedeusarconstantesencualquierlugarenelqueusaríaunaexpresión.
Date(Instrucción)
Establecelafechaactualdelsistema.
Sintaxis
Date=fecha
ParaequiposquetrabajenconMicrosoftWindows95,elargumentofechadebeserunafechaentreel1deenerode1980yel31dediciembrede2099.ParaequiposquetrabajenconMicrosoftWindowsNT,elargumentofechadebeestarcomprendidoentreel1deenerode1980al31dediciembredel2079.ParaMacintosh,fechadebeserunafechadel1deenerode1904al5defebrerode2040.
Declare(Instrucción)
Seusaenelniveldemóduloparadeclararreferenciasaprocedimientosexternosqueestánenunabibliotecadevínculosdinámicos(DLL).
Sintaxis1
[Public|Private]DeclareSubnombreLib"nombre_biblioteca"[Alias"nombre_alias"][([lista_argumentos])]
Sintaxis2
[Public|Private]DeclareFunctionnombreLib"nombre_biblioteca"[Alias"nombre_alias"][([lista_argumentos])][Astipo]
LasintaxisdelainstrucciónDeclareconstadelassiguientespartes:
Parte DescripciónPublic Opcional.Seusaparadeclararprocedimientosqueestán
disponiblesparatodoslosdemásprocedimientosentodoslosmódulos.
Private Opcional.Seusaparadeclararprocedimientosquesóloestándisponiblesdentrodelmódulodondesehaceladeclaración.
Sub Opcional(debeaparecerSuboFunction).Indicaqueelprocedimientonodevuelveunvalor.
Function Opcional(debeaparecerSuboFunction).Indicaqueelprocedimientodevuelveunvalorquesepuedeutilizarenunaexpresión.
nombre Requerido.Cualquiernombreválidodeprocedimiento.ObservequelospuntosdeentradadelasDLLdistinguenmayúsculasdeminúsculas.
Lib Requerido.Indicaqueelprocedimientoqueestádeclarandose
encuentraenunaDLLounrecursodecódigo.LacláusulaLibesobligatoriaparatodaslasdeclaraciones.
nombre_biblioteca
Requerido.NombredelarchivoDLLodelrecursodecódigoquecontieneelprocedimientodeclarado.
Alias Opcional.IndicaqueelprocedimientoalquesellamatieneotronombreenlaDLL.Estoesútilcuandoelnombredelprocedimientoexternoeselmismoqueeldeunapalabraclave.TambiénesposibleusarAliascuandounprocedimientodeDLLtieneelmismonombrequeunavariable,constanteocualquierotroprocedimientoconelmismoalcance.AliastambiénresultaútilsialgúncarácterdelnombredelprocedimientodelaDLLnoseadmitecomonombre.
nombre_alias
Opcional.NombredelprocedimientodelaDLLodelrecursodecódigo.Sielprimercarácternoesunsignodenúmero(#),nombre_aliaseselnombredelpuntodeentradadelprocedimientoenlaDLL.Si#eselprimercarácter,todosloscaracteresquelesiguendeberánindicarelnúmeroordinaldelpuntodeentradadelprocedimiento.
lista_argumentos
Opcional.Listadevariablesquerepresentanargumentosquesepasanalllamaralprocedimiento.
tipo Opcional.TipodedatosdelvalordevueltoporunprocedimientoFunction;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidoactualmente),Date,String(solamentedelongitudvariable),oVariant,untipodefinidoporelusuario,ountipodeobjeto.
Elargumentolista_argumentosposeelassiguientespartesysintaxis:
[Optional][ByVal|ByRef][ParamArray]nombre_variable[()][Astipo]
Parte DescripciónOptional Opcional.Indicaqueunargumentonoserequiere.Siseusa,
todoslosargumentossubsiguientesdelista_argumentostambiéndebenseropcionalesydebendeclararsemediantelapalabraclaveOptional.NosepuedeutilizarOptionalparaningún
argumentosiseutilizaParamArray.ByVal Opcional.Indicaqueelargumentosepasaporvalor.ByRef Indicaqueelargumentosepasaporreferencia.ByRefesel
modopredeterminadoenVisualBasic.ParamArray Opcional.Seusasólocomoelúltimoargumentode
lista_argumentosparaindicarqueelargumentofinalesunamatrizOptionaldeelementosVariant.LapalabraclaveParamArraylepermiteincluirunnúmeroarbitrariodeargumentos.NosepuedeusarconByVal,ByRefuOptional.
nombre_variable
Requerido.Nombredelavariablequerepresentaelargumentoquesepasaalprocedimiento;siguelasconvencionesestándardenombresdevariables.
() Requeridoparavariablesdematriz.Indicaquenombre_variableesunamatriz.
tipo Opcional.Eltipodedatosdelargumentoquesepasaalprocedimiento;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidoactualmente),Date,String(sólolongitudvariable),Object,Variant,untipodefinidoporelusuarioountipodeobjeto.
Comentarios
ParalosprocedimientosFunctioneltipodedatosdelprocedimientodeterminaeltipodedatosquedevuelve.PuedeusarunacláusulaAsacontinuacióndelista_argumentosparaespecificareltipodevalordevueltoporlafunción.Dentrodelista_argumentospuedeutilizarunacláusulaAsparaespecificareltipodedatosdelosargumentosquesepasanalprocedimiento.Ademásdeespecificarcualquieradelostiposdedatosestándar,puedeespecificarAsAnyenlista_argumentosparainhibirlacomprobacióndeltipodedatosypermitirelpasodecualquiertipodedatosalprocedimiento.
LosparéntesisvacíosindicanqueelprocedimientoSuboFunctionnotieneningúnargumentoyqueVisualBasicdebecomprobarquenosepasaninguno.Enelejemplosiguiente,Primeronotomaningúnargumento.SiusaargumentosenunallamadaaPrimero,ocurriráunerror:
DeclareSubPrimeroLib"MiBiblioteca"()
Siseincluyeunalistadeargumentos,secomprobaráelnúmeroyeltipodeargumentoscadavezquesellamealprocedimiento.Enelejemplosiguiente,PrimerotomaunargumentoLong:
DeclareSubPrimeroLib"MiBiblioteca"(XAsLong)
NotaNopuedetenercadenasdelongitudfijaenlalistadeargumentosdeunainstrucciónDeclare;sólosepuedenpasarcadenasdelongitudvariablealosprocedimientos.Lascadenasdelongitudfijapuedenaparecercomoargumentosdeprocedimientos,peroseconviertenacadenasdelongitudvariableantesdepasarse.
NotaLaconstantevbNullStringseutilizaalllamaraprocedimientosexternos,dondeelprocedimientoexternorequiereunacadenacuyovalorescero,quenoeslomismoqueunacadenadelongitudcero("").
Deftipo(Instrucciones)
Seusanenelniveldemóduloparaestablecereltipodedatospredeterminadoparavariables,argumentospasadoaprocedimientos,yelvalordevueltoporlosprocedimientosFunctionyPropertyGetcuyosnombrescomienzanconloscaracteresespecificados.
Sintaxis
DefBoolintervalo_letras[,intervalo_letras]...
DefByteintervalo_letras[,intervalo_letras]...
DefIntintervalo_letras[,intervalo_letras]...
DefLngintervalo_letras[,intervalo_letras]...
DefCurintervalo_letras[,intervalo_letras]...
DefSngintervalo_letras[,intervalo_letras]...
DefDblintervalo_letras[,intervalo_letras]...
DefDecintervalo_letras[,intervalo_letras]...
DefDateintervalo_letras[,intervalo_letras]...
DefStrintervalo_letras[,intervalo_letras]...
DefObjintervalo_letras[,intervalo_letras]...
DefVarintervalo_letras[,intervalo_letras]...
Elargumentorequeridointervalo_letrasposeelasintaxissiguiente:
letra1[-letra2]
Losargumentosletra1yletra2especificanelintervalodenombresparaelcualpuedeestableceruntipodedatospredeterminado.Cadaargumentorepresentalaprimeraletradelnombredelavariable,argumento,procedimientoFunctionoprocedimientoPropertyGetypuedesercualquierletradelabecedario.Enintervalo_letrasnosedistingueentremayúsculasyminúsculas.
Comentarios
Elnombredelainstruccióndeterminaeltipodedatos:
Instrucción TipodedatosDefBool BooleanDefByte ByteDefInt IntegerDefLng LongDefCur CurrencyDefSng SingleDefDbl DoubleDefDec Decimal(noseadmiteactualmente)DefDate DateDefStr StringDefObj ObjectDefVar Variant
Porejemplo,enelsiguientefragmentodeprograma,Mensajeesunavariabledecadena:
DefStrA-Q
...
Mensaje="Espaciodepilainsuficiente."
UnainstrucciónDeftiposóloafectaalmódulodondeseusa.Porejemplo,unainstrucciónDefIntenunmódulosóloafectaaltipodedatospredeterminadodelasvariables,losargumentospasadosaprocedimientosyeltipodevueltoparalosprocedimientosFunctionyPropertyGetdeclaradosenesemódulo;eltipodedatospredeterminadodevariables,argumentosytiposdevueltosenotrosmódulosnosevenafectados.SinosedeclaraexplícitamenteconunainstrucciónDeftipo,eltipodedatospredeterminadoparatodaslasvariables,todoslosargumentos,todoslosprocedimientosFunctionytodoslosprocedimientosPropertyGetesVariant.
Cuandoespecificaunintervalodeletras,generalmentedefineeltipodedatosparavariablesquecomienzanconlasletrasdelos128primeroscaracteresdeljuegodecaracteres.Sinembargo,cuandoespecificaelintervalodeletrasA–Z,estableceeltipodedatospredeterminadoparatodaslasvariables,incluyendocualquieraquecomienceconcaracteresinternacionalesprovenientesdelaparteextendidadeljuegodecaracteres(128–255).
TrasespecificarelintervaloA–ZnoesposibleseguirredefiniendocualquiersubintervalodevariablesmedianteinstruccionesDeftipo.Dehecho,unavezdefinidounintervalo,siincluyeunaletradefinidaanteriormenteenotrainstrucciónDeftipo,ocurriráunerror.Sinembargo,puedeespecificarexplícitamenteeltipodedatosdecualquiervariable,definidaono,medianteunainstrucciónDimconunacláusulaAstipo.Porejemplo,puedeusarelsiguientecódigoenelniveldemóduloparadefinirunavariablecomoDoubleinclusoaunqueeltipodedatospredeterminadoseaInteger:
DefIntA-Z
DimPorcentajeImpuestoAsDouble
LasinstruccionesDeftiponoafectanaelementosdetiposdefinidosporelusuarioyaqueestosdebendeclararseexplícitamente.
DeleteSetting(Instrucción)
EliminaunasecciónounaclavedeunaentradadelregistrodeWindows.O(enMacintosh)informaciónenelarchivodeinicializacióndelaaplicación.
Sintaxis
DeleteSettingappname,section[,key]
LasintaxisdelainstrucciónDeleteSettingtienelossiguientesargumentosconnombre:
Parte Descripciónappname Obligatorio.Expresióndecadenaquecontieneelnombredela
aplicaciónoproyectoalqueseaplicalasecciónolaclave.EnMacintosh,ésteeselnombredelarchivodeinicializaciónenlacarpetaPreferenciasenlacarpetadelSistema.
section Obligatorio.Expresióndetipocadenaquecontieneelnombredelaseccióndondeseencuentralaclavequesevaaeliminar.Sisóloseindicanappnameysection,seeliminarálasecciónespecificadajuntocontodaslasclavesrelacionadas.
key Opcional.Expresióndetipocadenaquecontieneelnombredelaclaveaeliminar.
Comentarios
Siseespecificantodoslosargumentos,seeliminarálaclaveindicada.Sinembargo,lainstrucciónDeleteSettingnohacenadasilasecciónolaclaveespecificadasnoexisten.
Dim(Instrucción)
Declaravariablesylesasignaespaciodealmacenamiento.
Sintaxis
Dim[WithEvents]nombre_variable[([subíndices])][As[New]tipo][,[WithEvents]nombre_variable[([subíndices])][As[New]tipo]]...
LasintaxisdelainstrucciónDimconstadelassiguientespartes:
Parte DescripciónWithEvents Opcional.Palabraclavequeespecificaquenombre_variablees
unavariabledeobjetoutilizadapararesponderaeventosdesencadenadosporunobjetoActiveX.WithEventssolamenteesválidoenmódulosdeclase.PuededeclarartantasvariablesindividualescomodeseemedianteWithEvents,peronopuedecrearmatricesconWithEvents.NopuedeutilizarNewconWithEvents.
nombre_variable
Requerido.Nombredelavariable;siguelasconvencionesestándardenombredevariable.
subíndices Opcional.Dimensionesdelavariabledematriz;sepuedendeclararhasta60dimensionesmúltiples.Elargumentosubíndicesutilizalasintaxissiguiente:
[inferiorTo]superior[,[inferiorTo]superior]...
Cuandonosedeclaraespecíficamenteeninferior,ellímiteinferiordeunamatrizsecontrolamediantelainstrucciónOptionBase.EstelímiteinferiorescerosinohayningunainstrucciónOptionBase.
New Opcional.Palabraclavequehabilitalacreaciónimplícitadeunobjeto.SiutilizaNewcuandodeclaralavariabledeobjeto,secreaunanuevainstanciadelobjetocomoprimerareferencia,deformaquenotienequeutilizarlainstrucciónSetparaasignarlareferenciadelobjeto.LapalabraclaveNewnosepuedeutilizarparadeclararvariablesdecualquiertipodedatos,intrínseco,paradeclararinstanciasdeobjetosdependientesniconWithEvents.
tipo Opcional.Tipodedatosdelavariable;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(actualmentenoadmitida),Date,String(paracadenasdelongitudvariable),String*length(paracadenasdelongitudfija),Object,Variant,untipodefinidoporelusuario,ountipodeobjeto.UtiliceunacláusuladistintaAstipoparacadavariablequedefina.
Comentarios
LasvariablesdeclaradasconDimenelniveldemóduloestándisponiblesparatodoslosprocedimientosdisponiblessólodentrodeesemódulo.Enelniveldeprocedimiento,lasvariablessóloestándisponiblesdentrodeeseprocedimiento.
UtilicelainstrucciónDimenelniveldemóduloodeprocedimientoparadeclarareltipodedatosdeunavariable.Porejemplo,lasiguienteinstruccióndeclaraunavariablecomoInteger.
DimNúmeroDeEmpleadosAsInteger
TambiénpuedeutilizarunainstrucciónDimparadeclarareltipodeobjetodeunavariable.Lasiguientelíneadeclaraunavariableparaunanuevainstanciadeunahojadecálculo.
DimXAsNewWorksheet
SinoutilizalapalabraclaveNewaldeclararunavariabledeobjeto,lavariablequeserefierealobjetodebeasignarseaunobjetoexistentemediantelainstrucciónSetantesdesuuso.Hastaqueseleasigneunobjeto,lavariabledeobjetodeclaradatieneelvalorespecialNothing,elcualindicaquenoserefiereaningunainstanciaenparticulardeunobjeto.
TambiénpuedeutilizarlainstrucciónDimconparéntesisvacíosparadeclararmatricesdinámicas.Despuésdedeclararunamatrizdinámica,uselainstrucciónReDimdentrodeunprocedimientoparadefinirelnúmerodedimensionesyelementosdelamatriz.SiintentavolveradeclararunadimensiónparaunavariabledematrizcuyotamañosehaespecificadoexplícitamenteenunainstrucciónPrivate,PublicoDim,ocurriráunerror.
SinoespecificauntipodedatosountipodeobjetoynoexisteningunainstrucciónDeftipoenelmódulo,lavariablepredeterminadaseráVariant.
Cuandoseinicializanvariables,unavariablenuméricaseinicializacon0,unacadenadelongitudvariableseinicializaconunacadenadelongitud0("")yuna
cadenadelongitudfijasellenaconceros.LasvariablesVariantseinicializanconEmpty.Cadaelementodeunavariabledeuntipodefinidoporelusuarioseinicializacomosifueraunavariabledistinta.
NotaCuandoutilizalainstrucciónDimenunprocedimiento,generalmenteponelainstrucciónDimalprincipiodelmismo.
Do...Loop(Instrucción)
RepiteunbloquedeinstruccionescuandounacondiciónesTrueohastaqueunacondiciónseconviertaenTrue.
Sintaxis
Do[{While|Until}condición][instrucciones][ExitDo][instrucciones]
Loop
Obien,puedeutilizarestasintaxis:
Do[instrucciones][ExitDo][instrucciones]
Loop[{While|Until}condición]
LasintaxisdelainstrucciónDoLoopconstadelassiguientespartes:
Parte Descripcióncondición Opcional.Expresiónnuméricaoexpresióndecadenaquees
TrueoFalse.SilacondiciónesNull,condiciónseconsideraFalse.
Instrucciones UnaomásinstruccionesqueserepitenmientrasohastaquecondiciónseaTrue.
Comentarios
SepuedeutilizarcualquiernúmerodeinstruccionesExitDoubicadasencualquierlugardentrodeunaestructuradecontrolDo…Loop,paraproporcionarunasalidaalternativadeunDo…Loop.LainstrucciónExitDoseutilizafrecuentementeenlaevaluacióndealgunacondición,porejemplo,If…Then;enestecaso,lainstrucciónExitDotransfiereelcontrolalainstrucciónquesigueinmediatamentealainstrucciónLoop.
CuandoseutilizaconinstruccionesanidadasDo…Loop,lainstrucciónExitDotransfierecontrolalbuclequeestáanidadounnivelporencimadelbucledondeocurre.
End(Instrucción)
Terminaunprocedimientoobloque.
Sintaxis
End
EndFunction
EndIf
EndProperty
EndSelect
EndSub
EndType
EndWith
LasintaxisdelainstrucciónEndtienelassiguientesvariantes:
Instrucción DescripciónEnd Finalizalaejecucióninmediatamente.Noesestrictamente
necesaria,perosepuedecolocarencualquierlugardeunprocedimientoparafinalizarlaejecucióndecódigo,cerrararchivosabiertosconlainstrucciónOpenyborrarvariables.
EndFunction RequeridoparaterminarunainstrucciónFunction.EndIf RequeridoparaterminarunainstruccióndebloqueIf…
Then…Else.
EndProperty RequeridoparaterminarunprocedimientoaPropertyLet,PropertyGetoPropertySet.
EndSelect RequeridoparaterminarunainstrucciónSelectCase.EndSub RequeridoparaterminarunainstrucciónSub.EndType Requeridoparaterminarunadefinicióndeuntipodefinido
porelusuario(instrucciónType).EndWith RequeridoparaterminarunainstrucciónWith.
Comentarios
CuandoseejecutalainstrucciónEnd,serestablecentodaslasvariablesaniveldemóduloytodaslasvariableslocalesestáticasentodoslosmódulos.UtiliceStopsinecesitaconservarelvalordeestasvariables.Puedereanudarlaejecuciónyalmismotiempoconservarlosvaloresdeesasvariables.
NotaLainstrucciónEnddetienelaejecuciónbruscamente,sinllamaaloseventosUnload,QueryUnloadoTerminate,ocualquierotrocódigoVisualBasic.ElcódigoquehacolocadoenloseventosUnload,QueryUnloadyTerminatedelosformulariosymódulosdeclasenoseejecuta.Sedestruyenlosobjetoscreadosdesdemódulodeclase,secierranlosarchivosabiertosutilizandoelmétodoOpenyseliberalamemoriautilizadaporelprograma.Seinvalidanlasreferenciasdeobjetosmantenidasporotrosprogramas.
LainstrucciónEndproporcionaunamaneradeforzarladetencióndeunprograma.ParalafinalizaciónnormaldeunprogramaVisualBasic,debedescargartodoslosformularios.Elprogramasecierraencuantonohayaotrosprogramasquemantienenreferenciasaobjetoscreadosenlosmódulosdeclasepúblicosyseejecuteningúncódigo.
Erase(Instrucción)
Vuelveainicializarloselementosdematricesdetamañofijoyliberaelespaciodealmacenamientoasignadoamatricesdinámicas.
Sintaxis
Eraselista_matrices
Elargumentorequeridolista_matricesesunaomásvariablesdematrizdelimitadasporcomasquesevanaborrar.
Comentarios
Erasesecomportademaneradiferentedependiendodesiunamatrizesdetamañofijo(normal)odinámica.Erasenorecuperamemoriaparalasmatricesdetamañofijo.Eraseestableceloselementosdeunamatrizfijasegúnseexplicaacontinuación:
Tipodematriz EfectodeErasesobreelementosdeunamatrizfijaMatriznuméricafija Establececadaelementoacero.Matrizdecadenafija(longitudvariable)
Establececadaelementoaunacadenadelongitudcero("").
Matrizdecadenafija(longitudfija)
Establececadaelementoacero.
MatrizdeVariantefija EstablececadaelementoaEmpty.Matrizdetiposdefinidosporelusuario
Establececadaelementocomosisetrataradeunavariableseparada.
Matrizdeobjetos EstablececadaelementoalvalorespecialNothing.
Eraseliberalamemoriausadapormatricesdinámicas.Antesdequeelprogramapuedahacerreferenciadenuevoalamatrizdinámica,debevolveradeclararlasdimensionesdelasvariablesdelamatrizconlainstrucciónReDim.
Error(Instrucción)
Simulalageneracióndeunerror.
Sintaxis
Errornúmeroerror
Elargumentoobligatorionúmeroerrorpuedesercualquiernúmerodeerrorválido.
Comentarios
LainstrucciónErrorsemantieneporcompatibilidadconversionesanteriores.Enelcódigonuevo,especialmentealcrearobjetos,utiliceelmétodoRaisedelobjetoErrparagenerarerroresentiempodeejecución.
Sinúmeroerrorestádefinido,lainstrucciónErrorllamaalcontroladordeerroresdespuésdequelaspropiedadesdelobjetoErrseestablezcanconlossiguientevalorespredeterminados:
Propiedad ValorNumber ValorespecificadocomoargumentoeninstrucciónError.
Puedesercualquiernúmerodeerrorválido.Source NombredelproyectoactualdeVisualBasic.Description Expresióndecadenacorrespondientealvalordevueltoporla
funciónErrorparaelnúmeroespecificadoenNumber,sitalcadenaexiste.Sinoexiste,Descriptioncontendráunacadenadelongitudcero("").
HelpFile Unidad,rutadeaccesoynombrecompletodelarchivodeAyudadeVisualBasic.
HelpContext IdentificadordecontextodelarchivodeAyudadeVisual
BasicparaelerrorcorrespondientealapropiedadNumber.LastDLLError Cero.
Sinoexistecódigodecontroldeerrores,osinoseencuentraactivado,secrearáymostraráunmensajedeerrorapartirdelaspropiedadesdelobjetoErr.
NotaNotodaslasaplicacioneshostdeVisualBasicpuedencrearobjetos.Consulteladocumentacióndesuaplicaciónhostparacomprobarsipuedecrearclasesyobjetos.
Exit
(Instrucción)
SaledeunbloquedecódigodeDo…Loop,For...Next,Function,SuboProperty.
Sintaxis
ExitDo
ExitFor
ExitFunction
ExitProperty
ExitSub
LasintaxisdelainstrucciónExitpuedeserlasiguiente:
Instrucción DescripciónExitDo Proporcionaunamaneradesalirdeunainstrucción
Do...Loop.SolamentesepuedeutilizardentrodeunainstrucciónDo...Loop.LainstrucciónExitDotransfiereelcontrolalainstrucciónquesiguealainstrucciónLoop.CuandoseutilizaconinstruccionesanidadasDo...Loop,lainstrucciónExitDotransfiereelcontrolalbuclequeestáanidadounnivelporencimadelbucledondeocurre.
ExitFor ProporcionaunamaneradesalirdeunbucleFor.SólosepuedeutilizarenunbucleFor...NextoForEach...Next.LainstrucciónExitFortransfiereelcontrolalainstrucciónquesiguealainstrucciónNext.CuandoseutilizaconbuclesanidadosFor,lainstrucciónExitFortransfiereelcontrolalbuclequeestáanidadounnivelporencimadelbucledondeocurre.
ExitFunction SaleinmediatamentedelprocedimientoFunctionenelqueaparece.LaejecucióncontinúaconlainstrucciónquesiguealainstrucciónquellamóalprocedimientoFunction.
ExitProperty SaleinmediatamentedelprocedimientoPropertyenelqueaparece.LaejecucióncontinúaconlainstrucciónquesiguealainstrucciónquellamóalprocedimientoProperty.
ExitSub SaleinmediatamentedelprocedimientoSubenelqueaparece.LaejecucióncontinúaconlainstrucciónquesiguealainstrucciónquellamóalprocedimientoSub.
Comentarios
NoconfundalasinstruccionesExitconlasinstruccionesEnd.LainstrucciónExitnodefinedóndeterminaunaestructura.
FileCopy(Instrucción)
Copiaunarchivo.
Sintaxis
FileCopysource,destination
LasintaxisdelainstrucciónFileCopyconstadelossiguientesargumentosconnombre:
Parte Descripciónsource Requerido.Expresióndecadenaqueespecificaelnombredeun
archivoquesevaacopiar.sourcepuedeincluireldirectorioocarpetaylaunidaddedisco.
destination Requerido.Expresióndecadenaqueespecificaelnombredelarchivodedestination.Puedeincluireldirectorioocarpetaylaunidaddedisco.
Comentarios
SiintentautilizarlainstrucciónFileCopyenunarchivoabiertoactualmente,seproduciráunerror.
ForEach...Next(Instrucción)
Repiteungrupodeinstruccionesparacadaelementodeunamatrizocolección.
Sintaxis
ForEachelementoIngrupo[instrucciones][ExitFor][instrucciones]
Next[elemento]
LasintaxisdelainstrucciónForEach...Nextconstadelassiguientespartes:
Parte Descripciónelemento Requerido.Variablequeseutilizaparaiterarporlos
elementosdelconjuntoomatriz.Paraconjuntos,elementosolamentepuedeserunavariabledeltipoVariant,unavariabledeobjetogenéricaocualquiervariabledeobjetoespecífica.Paramatrices,elementosolamentepuedeserunavariabletipoVariant.
grupo Requerido.Nombredeunconjuntodeobjetosodeunamatriz(exceptounamatrizdetiposdefinidosporelusuario).
instrucciones Opcional.Unaomásinstruccionesqueseejecutanparacadaelementodeungrupo.
Comentarios
LaentradaalbloqueForEachseproducesihayalmenosunelementoengrupo.Unavezquesehaentradoenelbucle,todaslasinstruccionesenelbucleseejecutanparaelprimerelementoengrupo.Después,mientrashayamáselementosengrupo,lasinstruccionesenelbuclecontinúanejecutándoseparacadaelemento.Cuandonohaymáselementosenelgrupo,sesaledelbucleylaejecucióncontinúaconlainstrucciónquesiguealainstrucciónNext.
SepuedencolocarenelbuclecualquiernúmerodeinstruccionesExitFor.LainstrucciónExitForseutilizaamenudoenlaevaluacióndealgunacondición(porejemplo,If...Then)ytransfiereelcontrolalainstrucciónquesigueinmediatamentealainstrucciónNext.
PuedeanidarbuclesForEach...Next,colocandounbucleForEach...Next
dentrodeotro.Sinembargo,cadaelementodelbucledebeserúnico.
NotaSiomiteelementoenunainstrucciónNext,laejecucióncontinúacomosisehubieraincluido.SiseencuentraunainstrucciónNextantesdesuinstrucciónForcorrespondiente,seproduciráunerror.
NosepuedeutilizarlainstrucciónForEach...NextconunamatrizdetiposdefinidosporelusuarioporqueuntipoVariantnopuedeconteneruntipodefinidoporelusuario.
For...Next(Instrucción)
Repiteungrupodeinstruccionesunnúmeroespecificadodeveces.
Sintaxis
Forcontador=principioTofin[Stepincremento][instrucciones][ExitFor][instrucciones]
Next[contador]
LasintaxisdelainstrucciónFor...Nextconstadelassiguientespartes:
Parte Descripcióncontador Requerido.Variablenuméricaqueseutilizacomocontador
debucle.LavariablenopuedeserBooleananiunelementodematriz.
principiot Requerido.Valorinicialdelcontador.fin Requerido.Valorfinaldelcontador.incremento Opcional.Cantidadenlaquecambiaelcontadorcadavez
queseejecutaelbucle.Sinoseespecifica,elvalorpredeterminadodeincrementoesuno.
instrucciones Opcional.UnaomásinstruccionesentreForyNextqueseejecutanunnúmeroespecificadodeveces.
Comentarios
Elargumentoincrementopuedeserpositivoonegativo.Elvalordelargumentoincrementodeterminalamaneraenqueseprocesaelbucle,comosemuestraacontinuación:
Valor ElbucleseejcutasiPositivoo0 contador<=finNegativo contador>=fin
Unavezqueseiniciaelbucleysehanejecutadotodaslasinstruccionesenelbucle,incrementosesumaacontador.Enestepunto,lasinstruccionesdelbuclesepuedenejecutardenuevo(sisecumplelamismapruebaquecausóqueel
bucleseejecutarainicialmente)obiensesaledelbucleylaejecucióncontinúaconlainstrucciónquesiguealainstrucciónNext.
SugerenciaCambiarelvalordecontadormientrasestádentrodeunbuclehacedifícilsulecturaydepuración.
SepuedencolocarenelbuclecualquiernúmerodeinstruccionesExitForcomounamaneraalternativadesalirdelmismo.LainstrucciónExitFor,queseutilizaamenudoenlaevaluacióndealgunacondición(porejemplo,If...Then),transfiereelcontrolalainstrucciónquesigueinmediatamentealainstrucciónNext.
SepuedenanidarbuclesFor...Next,colocandounbucleFor...Nextdentrodeotro.Paraello,proporcioneacadabucleunnombredevariableúnicocomosucontador.Lasiguienteconstrucciónescorrecta:
ForI=1To10
ForJ=1To10
ForK=1To10
...
NextK
NextJ
NextI
NotaSiomiteuncontadorenunainstrucciónNext,laejecucióncontinúacomosisehubieraincluido.SeproduceunerrorsiseencuentraunainstrucciónNextantesdesuinstrucciónForcorrespondiente.
Function(Instrucción)
Declaraelnombre,losargumentosyelcódigoquecomponenelcuerpodeunprocedimientoFunction.
Sintaxis
[Public|Private|Friend][Static]Functionnombre[(lista_argumentos)][Astipo][instrucciones][nombre=expresión][ExitFunction][instrucciones][nombre=expresión]
EndFunction
LasintaxisdelainstrucciónFunctionconstadelassiguientespartes:
Parte DescripciónPublic Opcional.IndicaqueelprocedimientoFunctionesaccesible
paratodoslosdemásprocedimientosdetodoslosmódulos.SiseutilizaenunmóduloquecontieneOptionPrivate,elprocedimientonoestarádisponiblefueradelproyecto.
Private Opcional.IndicaqueelprocedimientoFunctionsóloesaccesibleparaotrosprocedimientosdelmódulodondesedeclara.
Friend Opcional.Seutilizasolamenteenunmódulodeclase.IndicaqueelprocedimientoFunctionesvisibleatravésdelproyecto,peronoesvisibleparauncontroladordeunainstanciadeunobjeto.
Static Opcional.Indicaquelasvariableslocalesdelprocedimiento
Functionseconservanentrelasdistintasllamadas.ElatributoStaticnoafectaalasvariablesquesedeclaranfueradeFunction,inclusoaunqueseutilicenenelprocedimiento.
Nombre Requerido.NombredelprocedimientoFunction;siguelasconvencionesestándardenombresdevariables.
lista_argumentos
Opcional.ListadevariablesquerepresentanargumentosquesepasanalprocedimientoFunctioncuandosellama.Lavariablesmúltiplesseseparanporcomas.
tipo Opcional.TipodedatosdelvalordevueltoporelprocedimientoFunction;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidoactualmente),Date,String,o(exceptolongitudfija),Object,Variant,ocualquiertipodefinidoporelusuario.
instrucciones Opcional.CualquiergrupodeinstruccionesquesevanaejecutardentrodelprocedimientoFunction.
expresión Opcional.ValorderetornodeFunction.
Elargumentolista_argumentostienelasiguientesintaxisypartes:
[Optional][ByVal|ByRef][ParamArray]nombre_variable[()][Astipo][=valor_predeterminado]
Parte DescripciónOptional Opcional.Indicaqueunargumentonoesnecesario.Sise
utiliza,todoslosargumentosposterioresdelista_argumentostambiéndebenseropcionalesydeclararsemediantelapalabraclaveOptional.OptionalnosepuedeutilizarparacualquierargumentosiseempleaParamArray.
ByVal Opcional.Indicaqueelargumentosepasaporvalor.ByRef Opcional.Indicaqueelargumentosepasaporreferencia.
ByRefeselvalorpredeterminadoenVisualBasic.ParamArray Opcional.Sóloseutilizacomoúltimoargumentode
lista_argumentosparaindicarqueelúltimoargumentoesunamatrizOptionaldeelementosVariant.Lapalabraclave
ParamArraylepermiteproporcionarunnúmeroarbitrariodeargumentos.NopuedeutilizarseconByVal,ByRefuOptional.
nombre_variable
Requerido.Nombredelavariablequerepresentaelargumento;siguelasconvencionesestándardenombresdevariables.
tipo Opcional.Tipodedatosdelargumentopasadoalprocedimiento;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(nocompatibleactualmente),Date,String(sólolongitudvariable),Object,Variant,ountipodeobjetoespecífico.SielparámetronoesOptional,sepuedeespecificartambiénuntipodefinidoporelusuario.
valor_predeterminado
Opcional.Cualquierconstanteoexpresiónconstante.SóloesválidoparaparámetrosOptional.SieltipoesObject,unvalorpredeterminadoexplícitosólopuedeserNothing.
Comentarios
SinoseespecificandeformaexplícitamediantePublic,PrivateoFriend,losprocedimientosFunctionsonpúblicosdemanerapredeterminada.SinoseempleaStatic,elvalordelasvariableslocalesnoseconservaentredistintasllamadas.LapalabraclaveFriendsólopuedeusarseenmódulosdeclase.Sinembargo,puedeaccedersealosprocedimientosFriendporprocedimientosencualquiermódulodeunproyecto.UnprocedimientoFriendnoapareceenlabibliotecadetiposdesuclaseprimaria.
PrecauciónLosprocedimientosFunctionpuedenserrecursivos;esdecir,puedenllamarseasímismospararealizarunatareadeterminada.Sinembargo,larecursiónpuedeprovocareldesbordamientodepila.LapalabraclaveStaticnosesueleutilizarconprocedimientosFunctionrecursivos.
Todoelcódigoejecutabledebeestardentrodeprocedimientos.NopuededefinirunprocedimientoFunctiondentrodeotroprocedimientoFunction,SuboProperty.
LainstrucciónExitFunctionproduceunasalidainmediatadeunprocedimientoFunction.Laejecucióndelprogramacontinúaconlainstrucciónquesigueala
instrucciónquellamóalprocedimientoFunction.EncualquierlugardeunprocedimientoFunctionpuedeaparecercualquiernúmerodeinstruccionesExitFunction.
AligualqueunprocedimientoSub,unprocedimientoFunctionesunprocedimientoindependientequepuedeadoptarargumentos,realizarunaseriedeinstruccionesycambiarlosvaloresdesusargumentos.Sinembargo,adiferenciadeunprocedimientoSub,puedeutilizarunprocedimientoFunctionenelladoderechodeunaexpresióndelamismaformaenqueutilizacualquierfunciónintrínseca,comoSqr,CosoChr,cuandodeseaemplearelvalordevueltoporlafunción.
ParallamaraunprocedimientoFunction,utiliceenunaexpresiónelnombredefunciónseguidodelalistadeargumentosentreparéntesis.ConsultelainstrucciónCallparaobtenerinformaciónespecíficaacercadecómollamaralosprocedimientosFunction.
Paradevolverunvalordeunafunción,asigneelvaloralnombredelafunción.Encualquierlugardelprocedimientopuedeaparecercualquiernúmerodeasignacionesdeestetipo.Sinoseasignaningúnvaloranombre,elprocedimientodevolveráunvalorpredeterminado:unafunciónnuméricadevuelve0,unafuncióndecadenadevuelveunacadenadelongitudcero("")yunafunciónVariantdevuelveEmpty.UnafunciónquedevuelveunareferenciadeobjetodevuelveNothingsinoseasignaningunareferenciadeobjetoanombre(medianteSet)dentrodelprocedimientoFunction.
ElejemplosiguientemuestracómoasignarunvalorderetornoaunafunciónllamadaBinarySearch.Enestecaso,Falseseasignaalnombreparaindicarquenoseencontróalgúnvalor.
FunctionBinarySearch(...)AsBoolean
...
'Valornoencontrado.DevuelveunvalorFalse.
Iflower>upperThen
BinarySearch=False
ExitFunction
EndIf
...
EndFunction
LasvariablesempleadasenprocedimientosFunctionsedividenendoscategorías:lasquesedeclaranexplícitamentedentrodelprocedimientoylasqueno.Lasvariablesquesedeclaranexplícitamenteenunprocedimiento(medianteDimuotrainstrucciónequivalente)siempresonlocalesdelprocedimiento.Lasvariablesqueseutilizanperonosedeclaranexplícitamenteenunprocedimientotambiénsonlocales,amenosquesehayandeclaradoexplícitamenteenalgúnnivelsuperiorfueradelprocedimiento.
PrecauciónUnprocedimientopuedeutilizarunavariablequenosehadeclaradoexplícitamenteenelprocedimiento,peropuedeocurrirunconflictodenombressialgoquedefinióenunniveldemódulotieneelmismonombre.Sisuprocedimientohacereferenciaaunavariablenodeclaradaquetieneelmismonombrequeotroprocedimiento,constanteovariable,sesuponequeelprocedimientohacereferenciaaesenombreaniveldemódulo.Declareexplícitamentelasvariablesparaevitarestetipodeconflicto.PuedeutilizarunainstrucciónOptionExplicitparaforzarladeclaraciónexplícitadevariables.
PrecauciónVisualBasicpuedereorganizarlasexpresionesaritméticasparamejorarsueficaciainterna.EviteutilizarunprocedimientoFunctionenunaexpresiónaritméticacuandolafuncióncambieelvalordelasvariablesdelamismaexpresión.
Get(Instrucción)
Leedatosdeunarchivodediscoabiertoycolocalainformaciónenunavariable.
Sintaxis
Get[#]númeroarchivo,[númeroregistro],nombrevariable
LasintaxisdelainstrucciónGetconstadelassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivoválido.númeroregistro Opcional.UntipoVariant(Long).Númeroderegistro
(archivosenmodoRandom)onúmerodebyte(archivosenmodoBinary)desdeelquecomienzalalectura.
nombrevariable Requerido.Nombredeunavariableválidaenlaquesecolocanlosdatos.
Comentarios
LosdatosqueseleenconGetseescribenhabitualmenteenunarchivoconPut.
Elprimerregistroobytedeunarchivoseencuentraenlaposición1,elsegundoenlaposición2yasísucesivamente.Siomitenúmeroregistro,seleeelsiguienteregistroobytequeseencuentradespuésdelaúltimainstrucciónGetoPut(oalqueseñalalaúltimafunciónSeek).Debeincluirlascomasdedelimitación,por
ejemplo:
Get#4,,BúferArchivo
EnlosarchivosabiertosenmodoRandomseaplicanlassiguientesreglas:
AunquelalongituddelainformaciónqueseleeseamenorquelaespecificadaenlacláusulaLendelainstrucciónOpen,Getleelosregistrossiguientessegúnloslímitesdelongitudderegistro.Elespaciocomprendidoentreelfinaldeunregistroyelprincipiodelsiguientesellenaconelcontenidodelbúferdelarchivo.Puestoquelacantidaddelainformaciónderellenonosepuededeterminarconcerteza,esconvenientehacerqueelregistrotengalamismalongitudquelainformaciónqueselee.
Silavariableenlaqueseleelainformaciónesunacadenadecaracteresdelongitudvariable,Getleeundescriptorde2bytesquecontienelalongituddelacadenadecaracteresyacontinuaciónlosdatosquevanenlavariable.Porlotanto,lalongituddelregistroespecificadaporlacláusulaLendelainstrucciónOpendebeserporlomenos2bytesmayorquelalongitudrealdelacadenadecaracteres.
SilavariablequesevaaleeresunavariableVariantdetiponumérico,Getlee2bytesqueidentificanelVarTypedeltipoVariantyluegolosdatosquevanenlavariable.Porejemplo,cuandoseleeuntipoVariantdeVarType3,Getlee6bytes:2bytesidentificaneltipoVariantcomoVarType3(Long)y4bytescontieneneldatotipoLong.Lalongituddelregistro,especificadaporlacláusulaLendelainstrucciónOpen,debeserporlomenos2bytesmayorqueelnúmerorealdebytesnecesarioparaalmacenarlavariable.NotaPuedeutilizarlainstrucciónGetparaleerunamatrizVariantdeldisco,peronopuedeemplearGetparaleerunaVariantescalarquecontengaunamatrizTampocopodráutilizarGetparaleerobjetosdeldisco.
SilavariablequesevaaleeresunaVariantdetipoVarType8(String),Getlee2bytesqueidentificanelVarType,2bytesqueindicanlalongituddelacadenadecaracteresyluegolapropiacadena.LalongituddelregistroespecificadaporlacláusulaLendelainstrucciónOpendebeserporlomenos4bytesmayorquelalongitudrealdelacadena.
Silavariantequevaaleeresunamatrizdinámica,Getleeundescriptorcuyalongitudequivalea2más8veceselnúmerodedimensiones,esdecir,2+8*NumberOfDimensions.LalongituddelregistroespecificadaporlacláusulaLendelainstrucciónOpendebesermayoroigualquelasumadetodoslosbytesnecesariosparaleerlosdatosyeldescriptordelamatriz.Porejemplo,lasiguientedeclaracióndematrizrequiere118bytescuandolamatrizseescribeendisco.DimMiMatriz(1To5,1To10)AsInteger
Los118bytessedistribuyendelasiguienteforma:18bytesparaeldescriptor(2+8*2)y100bytesparalosdatos(5*10*2).
Silavariablequevaaleeresunamatrizdetamañofijo,Getleesolamentelosdatos.Noleeningúndescriptor.
Silavariablequevaaleerescualquierotrotipodevariable(nounacadenadelongitudvariableniuntipoVariant),Getleesolamentelosdatosvariables.LalongituddelregistroespecificadaporlacláusulaLendelainstrucciónOpendebesermayoroigualquelalongituddelosdatosqueestáleyendo.
Getleeelementosdetiposdefinidosporelusuariocomosicadaunodeellosseleyeraindividualmente,exceptoenquenohayrellenoentreloselementos.Endisco,unamatrizdinámicadeuntipodefinidoporelusuario(escritoconPut)tienecomoprefijoundescriptorcuyalongitudesiguala2más8veceselnúmerodedimensiones,esdecir,2+8*NumberOfDimensions.LalongituddelregistroespecificadaporlacláusulaLendelainstrucciónOpendebesermayoroigualquelasumadetodoslosbytesnecesariosparaleercadaunodeloselementos,incluyendolasmatricesysusdescriptores.
EnlosarchivosabiertosenmodoBinarytienenvigenciatodaslasreglasdelmodoRandom,conlassiguientesexcepciones:
LacláusulaLendelainstrucciónOpennotieneefecto.Getleedeldiscotodaslasvariablesenformacontigua,esdecir,sinrellenoentreregistros.
Paracualquiermatrizdistintadelasutilizadasenuntipodefinidoporelusuario,Getleesolamentelosdatos.Noleeningúndescriptor.
Getleelascadenasdecaracteresdelongitudvariablequenosonelementosdetiposdefinidosporelusuario,sinesperareldescriptordelongitudde2bytes.Elnúmerodebytesleídosesigualalnúmerodecaracteresexistentesenlacadena.Porejemplo,lassiguientesinstruccionesleen10bytesdelarchivonúmero1:VarCadena=String(10,"")
Get#1,,VarCadena
GoSub...Return(Instrucción)
Saltaaunasubrutinadesdeunprocedimientoparaposteriormentevolveraél.
Sintaxis
GoSublínea...línea...
Return
Elargumentolíneapuedesercualquieretiquetadelíneaonúmerodelínea.
Comentarios
PuedeutilizarGoSubyReturnencualquierlugardeunprocedimiento,peroGoSubysucorrespondienteReturndebenestarenelmismoprocedimiento.UnasubrutinapuedecontenermásdeunainstrucciónReturn,perolaprimerainstrucciónReturnqueseencuentrahacequeelflujodelaejecuciónregresealainstrucciónquesigueinmediatamentealainstrucciónGoSubejecutadamásrecientemente.
NotaNosepuedeentrarosalirdeprocedimientosSubutilizandounainstrucciónGoSub...Return.
SugerenciaLacreacióndeprocedimientosseparadosalosquepuedellamarproporcionaunaalternativamásestructuradaqueelusodeGoSub...Return.
GoTo(Instrucción)
Saltaincondicionalmenteaunalíneaespecificadaenunprocedimiento.
Sintaxis
GoTolínea
Elargumentolíneapuedesercualquieretiquetadelíneaonúmerodelínea.
Comentarios
GoTosolamentepuedesaltaralíneasdelprocedimientoenelqueaparece.
NotaDemasiadasinstruccionesGoTopuedenserdifícilesdeleerydedepurar.Siemprequeseaposible,utiliceinstruccionesdecontrolestructuradas(Do...Loop,For...Next,If...Then...Else,SelectCase).
If...Then...Else(Instrucción)
Ejecutacondicionalmenteungrupodeinstrucciones,dependiendodelvalordeunaexpresión.
Sintaxis
IfcondiciónThen[instrucciones]-[Elseinstrucciones_else]
Puedeutilizarlasiguientesintaxisenformatodebloque:
IfcondiciónThen[instrucciones]
[ElseIfcondición-nThen[instrucciones_elseif]...
[Else[instrucciones_else]]
EndIf
LasintaxisdelainstrucciónIf...Then...Elseconstadetrespartes:
Parte Descripcióncondición Requerido.Unoomásdelossiguientesdostiposde
expresiones: Unaexpresiónnuméricaoexpresióndecadenaquepuede
serevaluadacomoTrueoFalse.SicondiciónesNull,condiciónseconsideraFalse.
UnaexpresióndelformularioTypeOfnombre_objetoIstipo_objeto.Elnombre_objetoescualquierreferenciaalobjetoytipo_objetoescualquiertipodeobjetoválido.LaexpresiónesTruesinombre_objetoesdeltipodeobjetoespecificadoportipo_objeto;encasocontrarioesFalse.
instrucciones Opcionalenformatodebloque;serequiereenformatodelíneasencillaquenotengaunacláusulaElse.UnaomásinstruccionesseparadaspordospuntosejecutadossilacondiciónesTrue.
condición-n Opcional.Igualquecondición.instrucciones_elseifOpcional.Unaomásinstruccionesejecutadassila
condición-nasociadaesTrue.instrucciones_else Opcional.Unaomásinstruccionesejecutadassiningunade
lasexpresionesanteriorescondiciónocondición-nesTrue.
Comentarios
Puedeutilizarlaformadeunasolalínea(Sintaxis1)parapruebascortasysencillas.Sinembargo,elformatodebloque(Sintaxis2)proporcionamásestructurayflexibilidadquelaformadelíneasimpley,generalmente,esmásfácildeleer,demantenerydedepurar.
NotaConlasintaxisesposibleejecutarmúltiplesinstruccionescomoresultadodeunadecisiónIf...Then,perotodasdebenestarenlamismalíneayseparadaspordospuntos,comoenlainstrucciónsiguiente:
IfA>10ThenA=A+1:B=B+A:C=C+B
UnainstrucciónconformatodebloqueIfdebeserlaprimeradelalínea.LaspartesElse,ElseIfyEndIf,delainstrucción,solamentepuedenirprecedidasdeunnúmerodelíneaounaetiquetadelínea.ElbloqueIfdebeterminarconunainstrucciónEndIf.
ParadeterminarsiunainstrucciónIfesunbloque,examineloquesigueala
palabraclaveThen.SiloqueaparecedetrásdeThenenlamismalíneanoesuncomentario,lainstrucciónseconsideracomounainstrucciónIfdeunasolalínea.
LascláusulasElseyElseIfsonopcionales.PuedetenerenunbloqueElseIf,tantascláusulasIfcomodesee,peroningunapuedeaparecerdespuésdeunacláusulaElse.LasinstruccionesdebloqueIfsepuedenanidar;esdecir,unaspuedenconteneraotras.
CuandoseejecutaunbloqueIf(Sintaxis2),sepruebacondición.SicondiciónesTrue,seejecutanlasinstruccionesqueestánacontinuacióndeThen.SicondiciónesFalse,seevalúanunaaunalascondicionesElseIf(siexisten).CuandoseencuentraunacondiciónTrueseejecutanlasinstruccionesquesigueninmediatamentealainstrucciónThenasociada.SiningunadelascondicionesElseIfesTrue(osinohaycláusulasElseIf),seejecutanlasinstruccionesquesiguenaElse.DespuésdelaejecucióndelasinstruccionesquesiguenaThenoElse,laejecucióncontinúaconlainstrucciónquesigueaEndIf.
SugerenciaSelectCasepuedesermásútilcuandoseevalúaunaúnicaexpresiónquetienevariasaccionesposibles.Sinembargo,lacláusulaTypeOfnombre_objetoIstipo_objetonosepuedeutilizarenunainstrucciónSelectCase.
NotaNosepuedeusarTypeOfcontiposdedatospredefinidoscomoLong,Integeryasísucesivamente,exceptoeneltipodedatosObject.
Input#(Instrucción)
Leedatosdeunarchivosecuencialabiertoyasignaesosdatosavariables.
Sintaxis
Input#númeroarchivo,listavariables
LasintaxisdelainstrucciónInput#constadelassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivoválido.listavariables Requerido.Listadevariablesdelimitadaporcomasquese
asignanalosvaloresqueseleendeunarchivo;nopuedeserunamatrizounavariabledeobjeto.Sinembargo,esposibleusarvariablesquedescribenelementosdeunamatrizodeuntipodefinidoporelusuario.
Comentarios
LosdatosleídosconInput#seescribennormalmenteenunarchivoconWrite#.UseestainstrucciónsóloconarchivosabiertosenmodoInputoBinary.
Cuandoseleendatosnuméricosocadenasestándar,seasignantalcualavariables.Lasiguientetablailustralamaneraenquesetratalaentradadeotrostiposdedatos:
Datos ValorasignadoalavariablePuntoycomadedelimitaciónolíneaenblanco
Empty
#NULL# Null#TRUE#o#FALSE# TrueoFalse#yyyy-mm-ddhh:mm:ss# Eldíaolahorarepresentadasporlaexpresión#ERRORerrornumber# errornumber(lavariableesuntipoVariant
etiquetadacomounerror)
Seignoranlascomillasdobles("")enlaentradadedatos.
NotaNodeberíaescribircadenasquecontenganmarcasdecomillasincrustadas,porejemplo,"1,2""X"parautilizarlasconlainstrucciónInput#:Input#analizalacadenacomodoscadenascompletasyseparadas.
Loselementosdedatosdeunarchivodebenaparecerenelmismoordenquetienenlasvariablesenlistavariablesydebencoincidirconvariablesdelmismotipodedatos.Siunavariableesnuméricaylosdatosnoloson,seasignaunvalorceroaesavariable.
Sisellegaalfindelarchivocuandoseestáintroduciendounelementodedatos,sedaporterminadalaentradayseproduceunerror.
NotaParaintroducircorrectamenteenvariablesmedianteInput#losdatosleídosdeunarchivo,utilicesiemprelainstrucciónWrite#,enlugardePrint#,paragrabarlainformaciónenlosarchivos.LautilizacióndeWrite#garantiza
quecadacampodedatosseparadosedelimitecorrectamente.
Kill(Instrucción)
Eliminaarchivosdeldisco.
Sintaxis
Killnombre_ruta
Elargumentorequeridonombre_rutaesunaexpresióndecadenaqueespecificaunoomásnombresdearchivosquesevanaeliminar.Puedeincluireldirectorioocarpetaylaunidaddedisco.
Comentarios
EnMicrosoftWindows,LafunciónKillpermiteelusodeloscaracterescomodín'*'(múltiplescaracteres)y'?'(unsolocarácter)paraespecificarvariosarchivos.Sinembargo,enMacintosh,estoscaracteressontratadoscomocaracteresdenombredearchivoválidosynosepuedenutilizarcomocomodines
paraespecificarmúltiplesnombresdearchivo.
ComoMacintoshnoadmitecomodines,utiliceeltipodearchivoparaidentificargruposdearchivosaborrar.PuedeutilizarlafunciónMacIDparaespecificareltipodearchivoenlugarderepetirelcomandocondistintosnombresdearchivos.Porejemplo,lasiguienteinstrucciónborrartodoslosarchivosdeTEXTOenlacarpetaactual.
KillMacID("TEXT")
SiutilizalafunciónMacIDconKillenMicrosoftWindows,seproduciráunerror.
SeproduciráunerrorsiintentausarlainstrucciónKillparaeliminarunarchivoabierto.
NotaParaeliminardirectorios,utilicelainstrucciónRmDir.
Let(Instrucción)
Asignaelvalordeunaexpresiónaunavariableopropiedad.
Sintaxis
[Let]nombre_variable=expresión
LasintaxisdelainstrucciónLetconstadelassiguientespartes:
Parte DescripciónLet Opcional.ElusoexplícitodelapalabraclaveLetesunacuestión
deestilo,peronormalmenteseomite.nombre_variable
Requerido.Nombredelavariableodelapropiedad;siguelasconvencionesestándardenombresdevariables.
expresión Requerido.Valorasignadoalavariableoalapropiedad.
Comentarios
Unaexpresióndevalorsepuedeasignaraunavariableoaunapropiedadsólosiesdeuntipodedatoscompatibleconlavariable.Nopuedeasignarexpresionesdecadenaavariablesnuméricasniasignarexpresionesnuméricasavariablesdecadena.Silohace,ocurriráunerrorentiempodecompilación.
LasvariablesVariantpuedenasignarseaexpresionesdecadenaonuméricas.Sinembargo,locontrarionosiempreesverdadero.CualquierVariantexceptoNullpuedeasignarseaunavariabledecadena,perosólounaVariantcuyovalorpuedainterpretarsecomounnúmerosepuedeasignaraunavariablenumérica.UselafunciónIsNumericparadeterminarsilaVariantsepuedeconvertiraunnúmero.
PrecauciónSiasignaunaexpresióndeuntiponuméricoaunavariabledeuntipodedatosnuméricosdiferente,forzaráqueelvalordelaexpresiónseadeltiponuméricodelavariableresultante.
LasinstruccionesLetsepuedenutilizarparaasignarunavariablederegistroaotrasólocuandoambasvariablessondelmismotipodefinidoporelusuario.UtilicelainstrucciónLSetparaasignarvariablesderegistrodediferentestiposdefinidosporelusuario.UtilicelainstrucciónSetparaasignarreferenciasdeobjetosavariables.
LineInput#(Instrucción)
LeeunalíneadeunarchivosecuencialabiertoylaasignaaunavariableString.
Sintaxis
LineInput#númeroarchivo,nombrevariable
LasintaxisdelainstrucciónLineInput#constalassiguientespartes:
Parte Descripción
númeroarchivo Requerido.Cualquiernúmerodearchivo.nombrevariable Requerido.UnVariantounnombredevariableString
válido.
Comentarios
LosdatosqueseleenconLineInput#normalmenteseescribenenunarchivoconPrint#.
LainstrucciónLineInput#leeuncaráctercadavezenunarchivohastaqueencuentraunretornodecarro(Chr(13))ounasecuenciaretornodecarro-avancedelínea(Chr(13)+Chr(10)).Lassecuenciasderetornodecarro-avancedelíneanosetienenencuentaynoseañadenalacadenadecaracteres.
Load(instrucción)
Cargaunobjetoperonolomuestra.
Sintaxis
Loadobjeto
ElmarcadordeposiciónobjetorepresentaunaexpresióndeobjetoqueevaluaunobjetoenlalistaSeaplicaa.
Comentarios
Cuandosecargaunobjeto,secolocaenlamemoria,peronoesvisible.UtiliceelmétodoShowparahacerlovisible.Mientrasunobjetonoseavisible,unusuarionopuedeinteractuarconél.
Lock,Unlock
(Instrucciones)
ControlaelaccesoporpartedeotrosprocesosatodoopartedeunarchivoabiertomediantelainstrucciónOpen.
Sintaxis
Lock[#]númeroarchivo[,intervaloregistros]...
Unlock[#]númeroarchivo[,intervaloregistros]
LasintaxisdelasinstruccionesLockyUnlockconstalassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivoválido.intervaloregistros Opcional.Elintervaloderegistrosparabloquearo
desbloquear.
Valores
Losposiblesvaloresdelargumentointervaloregistrosson:
númeroregistro|[inicio]Tofin
Valor Descripciónnúmeroregistro Númeroderegistro(archivosdemodoRandom)onúmero
debyte(archivosdemodoBinary)enelquecomienzaelbloqueooeldesbloqueo.
inicio Númerodelprimerregistroobyteparabloquearodesbloquear.
fin Númerodelúltimoregistroobyteparabloquearodesbloquear.
Comentarios
LasinstruccionesLockyUnlockseutilizanenentornosdondevariosprocesospuedennecesitaraccesoalmismoarchivosimultáneamente.
LasinstruccionesLockyUnlockseutilizansiempreporparejas.LosargumentosdeLockyUnlockdebencoincidirexactamente.
Elprimerregistroobytedeunarchivoseencuentraenlaposición1,elsegundoenlaposición2yasísucesivamente.Siespecificasólounregistro,sólosebloqueaosedesbloqueaeseregistro.Siespecificaunintervaloderegistrosyomiteelregistrodeinicio(inicio),sebloqueanosedesbloqueantodoslosregistrosapartirdelprimerohastaelúltimo(fin)delintervalo.SiseutilizaLocksinnúmeroregistrosebloqueatodoelarchivoysiseutilizaUnlocksinnúmeroregistrosedesbloqueatodoelarchivo.
Sielarchivosehaabiertoparaefectuaroperacionessecuencialesdeentradaosalida,LockyUnlockafectanalarchivocompleto,independientementedelintervaloespecificadoporinicioyfin.
PrecauciónAntesdecerrarunarchivooterminarlaejecucióndeunprograma,noolvidequitartodoslosbloqueospormediodeunainstrucciónUnlock.Sinosequitantodoslosbloqueossepuedenobtenerresultadosimpredecibles.
LSet(Instrucción)
Alineaalaizquierdaunacadenaenunavariabledecadenaocopiaunavariabledeuntipodefinidoporelusuarioaotravariabledeuntipodedatosdiferentedefinidoporelusuario.
Sintaxis
LSetvarcadena=cadena
LSetnombrevar1=nombrevar2
LasintaxisdelainstrucciónLSetconstadelassiguientespartes:
Parte Descripciónvarcadena Requerido.Nombredevariabledecadena.cadena Requerido.Expresióndecadenaquesevaaalinearala
izquierdaenvarcadena.nombrevar1 Requerido.Nombredevariabledeltipodedatosdefinido
porelusuarioalaquesecopia.nombrevar2 Requerido.Nombredevariabledeltipodedatosdefinido
porelusuariodesdelaquesecopia.
Comentarios
LSetreemplazaconespaciosenblancoloscaracteressobrantesenvarcadena.
Sicadenaesmáslargaquevarcadena,LSetcolocasóloloscaracteresqueestánmásalaizquierda,hastalalongituddevarcadena,envarcadena.
AdvertenciaNoserecomiendautilizarLSetparacopiarunavariabledeuntipodedatosdefinidoporelusuarioaunavariabledeotrotipodedatosdiferentedefinidoporelusuario.Copiardatosdeuntipodedatosenunespacioreservadoparaotrotipodedatosdiferentepuedeocasionarresultadosimprevisibles.
Cuandocopiaunavariabledeuntipodedatosdefinidoporelusuarioaotro,simplementesecopianlosdatosbinariosdeunavariableenelespaciodememoriadelaotra,sintenerencuentalostiposdedatosespecificadosparaloselementosincluidosdentrodedichoespacio.
Mid
(Instrucción)
ReemplazaunnúmeroespecificadodecaracteresenunavariabledetipoVariant(String)concaracteresdeotracadena.
Sintaxis
Mid(varcadena,inicio[,longitud])=cadena
LasintaxisdelafunciónMidconstadelassiguientespartes:
Parte Descripciónvarcadena Requerido.Nombredelavariabledecadenaquesevaa
modificar.inicio Requerido;untipoVariant(Long).Posicióndecarácteren
varcadenadondeempiezaeltextoquesevaareemplazar.longitud Opcional;untipoVariant(Long).Númerodecaracteresque
sevaareemplazar.Siseomiteseutilizatodalacadena.cadena Requerido.Expresióndecadenaquereemplazapartede
varcadena.
Comentarios
Elnúmerodecaracteresreemplazadosessiempremenoroigualalnúmerodecaracteresenvarcadena.
NotaUtilicelainstrucciónMidBcondatosdebyteincluidosenunacadena.EnlainstrucciónMidB,inicioespecificalaposicióndebytedentrodevarcadenadondecomienzalasustituciónylongitudespecificaelnúmerodebytesquesevaareemplazar.
MkDir(Instrucción)
Creaundirectorioocarpeta.
Sintaxis
MkDirruta
Elargumentorequeridorutaesunaexpresióndecadenaqueidentificaeldirectorioocarpetaquesevaacrear.Puedeincluirlaunidaddedisco.Sinoseespecificalaunidaddedisco,lainstrucciónMkDircreaeldirectorioocarpetaenlaunidaddediscoactual.
Name
(Instrucción)
Cambiaelnombredeunarchivo,directorioocarpeta.
Sintaxis
Namenombre_ruta_antiguaAsnombre_ruta_nueva
LasintaxisdelainstrucciónNameconstadelassiguientespartes:
Parte Descripciónnombre_ruta_antigua Requerido.Expresióndecadenaqueespecificael
nombreylaposicióndearchivoexistente.Puedeincluireldirectorioolacarpetaylaunidaddedisco.
nombre_ruta_nueva Requerido.Expresióndecadenaqueespecificaelnombrenuevoylaposicióndelarchivo.Puedeincluireldirectorioolacarpetaylaunidaddedisco.Elnombreyposiciónespecificadosennombre_ruta_nuevano
puedenserlosdeunarchivoexistente.
Comentarios
LainstrucciónNamecambiaelnombredeunarchivoylomueveaundirectorioocarpetadiferente,siesnecesario.Namepuedemoverunarchivoatravésdeunidadesperosólopuedecambiarelnombreaundirectorioocarpetaexistentecuandotantonombre_ruta_antiguacomoelnombre_ruta_nuevaestánubicadosenlamismaunidad.Namenopuedecrearunnuevoarchivo,directorioocarpeta.
SiseutilizalainstrucciónNameconunarchivoabiertoseproduciráunerror.Cierreunarchivoantesdecambiarleelnombre.LosargumentosdelainstrucciónNamenopuedenincluircaracterescomodínmúltiples(*)nisencillos(?).
OnError(Instrucción)
Activaunarutinadecontroldeerroresyespecificalaubicacióndelamismaenunprocedimiento;tambiénpuedeutilizarseparadesactivarunarutinadecontroldeerrores.
Sintaxis
OnErrorGoTolínea
OnErrorResumeNext
OnErrorGoTo0
LasintaxisdelainstrucciónOnErrorpuedetenercualquieradelosformatossiguientes:
Instrucción DescripciónOnErrorGoTolínea Activalarutinadecontroldeerroresquecomienzaen
lalíneaespecificadaenelargumentonecesariolínea.Elargumentolíneaescualquieretiquetadelíneaonúmerodelínea.Siseproduceunerrorentiempodeejecución,elcontrolpasaalínea,activandoelcontroladordeerrores.LalíneaespecificadaenelargumentolíneadebeencontrarseenelmismoprocedimientoquelainstrucciónOnError;odelo
contrario,seproduciráunerrorentiempodecompilación.
OnErrorResumeNext
Especificaque,encasodequeseproduzcaunerrorentiempodeejecución,elcontrolpasealainstrucciónquesigueinmediatamenteaaquéllaenlaquesehaproducidoelerror,dondecontinúalaejecución.SerecomiendautilizaresteformatoenlugardeOnErrorGoTocuandoaccedaaobjetos.
OnErrorGoTo0 Desactivacualquiercontroladordeerroresdelprocedimientoactual.
Comentarios
SinoutilizaunainstrucciónOnError,cualquiererrorentiempodeejecuciónqueseproduzcaseráfatal;esdecir,apareceráunmensajedeerrorylaejecuciónsedetendrá.
Uncontroladordeerrores"activado"esaquélquesehahabilitadomedianteunainstrucciónOnErroryuncontroladordeerrores“activo"esuncontroladoractivadoqueseencuentraenelprocesodetratarunerror.Siseproduceunerrormientrasuncontroladorestáactivo(entrelaaparicióndelerroryunainstrucciónResume,ExitSub,ExitFunctionoExitProperty),elcontroladordeerroresdelprocedimientoactualnopuedetratarlo.Elcontrolvuelvealprocedimientoquehacelallamada,ysiéstecuentaconuncontroladordeerroresactivado,seutilizaesecontroladorparatratarelerror.Sitambiénestáactivoelcontroladordeerrordelprocedimientoquehacelallamada,elcontrolvuelvehacialosprocedimientosllamadoresanterioreshastallegarauncontroladordeerroractivado,peronoactivo.Sinoseencuentrauncontroladordeerroresactivadoeinactivo,elerroresfatalenelpuntoenelqueseprodujo.Cadavezqueelcontroladordeerroresdevuelveelcontrolalprocedimientoquehacelallamada,ésteseconvierteenelprocedimientoactual.Unaveztratadounerrorconuncontroladorencualquierprocedimiento,laejecucióncontinúaenelprocedimientoactualenelpuntodesignadoporlainstrucciónResume.
NotaUnarutinadecontroldeerroresnoesunprocedimientoSubniFunction.Esunaseccióndecódigomarcadaconunaetiquetaounnúmerodelínea.
LasrutinasdecontroldeerroressebasanenelvalordelapropiedadNumberdelobjetoErrparadeterminarlacausadelerror.UnarutinadecontroldeerroresdebecomprobaryguardarlosvaloresdelaspropiedadesdelobjetoErrantesdequepuedaproducirseotroerroroantesdequesellameaunprocedimientoquepuedacausarlo.LosvaloresdelaspropiedadesdelobjetoErrreflejansolamenteelerrormásreciente.ElmensajedeerrorasociadoaErr.NumberseencuentraenErr.Description.
OnErrorResumeNexthacequelaejecucióncontinúeenlainstrucciónquesigueinmediatamentealaquecausóelerrorentiempodeejecución,oenlaquesigueinmediatamentealaúltimallamadadesdeelprocedimientoquecontienelainstrucciónOnErrorResumeNext.Estainstrucciónpermitecontinuarlaejecuciónapesardequesehayaproducidounerrorentiempodeejecución..Puedecolocarlarutinadecontroldeerroresdondeseproduciríaelerror,envezdetransferirelcontrolaotraposicióndentrodelprocedimiento.LainstrucciónOnErrorResumeNextpasaaestarinactivacuandosellamaaotroprocedimiento,portantousteddebeejecutarunainstrucciónOnErrorResumeNextencadarutinaquellamadasideseauncontroldeerroresintegradodentrodelapropiarutina.
NotaLaconstrucciónOnErrorResumeNextpuedeserpreferibleaOnErrorGoTocuandosetratenerroresgeneradosduranteelaccesoaotrosobjetos.ComprobarErrdespuésdecadainteracciónconunobjetoeliminalaambigüedadencuantoaquéobjetoestabaaccediendoelcódigocuandoseprodujoelerror.DeestemodopuedesaberquéobjetohacolocadoelcódigodeerrorenErr.Number,asícomoquéobjetogeneróoriginalmenteelerror(elobjetoespecificadoenErr.Source).
OnErrorGoTo0desactivaelcontroldeerroresenelprocedimientoactual.Noespecificalalínea0comoeliniciodelcódigodecontroldeerrores,nisiquieracuandoelprocedimientocontieneunalíneaconelnúmero0.SinunainstrucciónOnErrorGoTo0,elcontroldeerroressedesactivaautomáticamentealsalirdelprocedimiento.
Paraevitarqueelcódigodecontroldeerroresseejecutecuandonosehaproducidoningúnerror,coloqueunainstrucciónExitSub,ExitFunctionoExitPropertyinmediatamenteantesdelarutinadecontroldeerrores,comoenelejemplosiguiente:
SubInicializarMatriz(Var1,Var2,Var3,Var4)
OnErrorGoToControlErrores
...
ExitSub
ControlErrores:
...
ResumeNext
EndSub
Aquí,elcódigodecontroldeerroresvieneacontinuacióndelainstrucciónExitSubyprecedeaEndSubparasepararlodelflujonormaldelprocedimiento.Elcódigodecontroldeerrorespuedesituarseencualquierlugardelprocedimiento.
Loserroresnointerceptadosenlosobjetossedevuelvenalaaplicaciónqueloscontrolacuandoelobjetoestátrabajandocomounarchivoejecutable.Enelentornodedesarrollo,estoserroressólosedevuelvenalaaplicaciónsiseestablecenlasopcionesadecuadas.Consulteladocumentacióndesuaplicaciónhostparaunadescripcióndelasopcionesquedebenestablecerseduranteladepuración,cómoestablecerlasysielhostpuedecrearclases.
Sicreaunobjetoqueaccedeaotrosobjetos,deberáintentartratarloserroresquetalesobjetosdevuelvansinprocesar.Sinopuedetratarlos,copieelcódigodeerrorenErr.Numberenunodesuspropioserroresyluegopáselosalelementoquellamóasuobjeto.DebeespecificarelerroragregandosupropiocódigodeerroralaconstantevbObjectError.Porejemplo,sisucódigodeerrores1052,asígnelodeestaforma:
Err.Number=vbObjectError+1052
NotaLoserroresdelsistemaalrealizarllamadasabibliotecasdevínculosdinámicos(DLL)orecursosdecódigodeMacintoshnogeneranexcepcionesynosepuedentratarconelcontroldeerroresdeVisualBasic.AlllamarafuncionesDLL,debecomprobarenlosvaloresdevueltossilafunciónhatenidoéxitoohafracasado(segúnlasespecificacionesdelaAPI)y,enelcasodeunfallo,comprobarelvalordelapropiedadLastDLLErrordelobjetoErr.LastDLLErrorsiempredevuelveceroenMacintosh.
On...GoSub,On...GoTo(Instrucciones)
Saltaaunadelaslíneasespecificadas,dependiendodelvalordeunaexpresión.
Sintaxis
OnexpresiónGoSublista_destino
OnexpresiónGoTolista_destino
LasintaxisdelasinstruccionesOn...GoSubyOn...GoToconstadelassiguientespartes:
Parte Descripciónexpresión Requerido.Cualquierexpresiónnuméricacuyovaloresun
númeroenteroentre0y255,inclusive.Siexpresiónescualquiernúmeronoentero,seredondeaantesdeevaluarse.
lista_destino Requerido.Listadenúmerosdelíneaoetiquetasdelíneaseparadosporcomas.
Comentarios
Elvalordeexpresióndeterminaaquélíneadelista_destinosaltalaejecución.Sielvalordeexpresiónesmenorque1omayorqueelnúmerodeelementosenlalista,seproduceunodelossiguientesresultados:
Siexpresiónes EntoncesIguala0 Elcontrolsetransfierealainstrucción
quesigueaOn...GoSuboOn...GoTo.Mayorqueelnúmerodeelementosenunalista
ElcontrolsetransfierealainstrucciónquesigueaOn...GoSuboOn...GoTo.
Negativo Seproduceunerror.Mayorque255 Seproduceunerror.
Puedenmezclarnúmerosdelíneayetiquetasdelíneaenlamismalista.EnlaprácticanohaylímiteparaelnúmerodeetiquetasdelíneaodenúmerosdelíneaquesepuedenutilizarconOn...GoSubyOn...GoTo.Sinembargo,siutilizamásetiquetasonúmerosdelosquepuedecontenerunalíneasimple,debeutilizarelcarácterdecontinuacióndelíneaparaseguirlalínealógicaenlasiguientelíneafísica.
SugerenciaSelectCaseproporcionaunamaneramásestructuradayflexiblederealizarsaltosmúltiples.
Open(Instrucción)
Activaoperacionesdeentrada/salida(E/S)conunarchivo.
Sintaxis
Openrutaacceso[Formodo][Accessacceso][bloquear]As[#]númeroarchivo[Len=longitudregistro]
LasintaxisdelainstrucciónOpenconstalassiguientespartes:
Parte Descripción
rutaacceso Requerido.Expresióndecadenaqueespecificaunnombredearchivo;puedeincluireldirectorioocarpetaylaunidaddedisco.
modo Requerido.Palabraclavequeespecificaelmododearchivo:Append,Binary,Input,OutputoRandom.Sinoseespecifica,elarchivoseabreconaccesoRandom.
acceso Opcional.Palabraclavequeespecificalasoperacionespermitidasenelarchivoabierto:Read,WriteoReadWrite.
bloquear Opcional.Palabraclavequeespecificalasoperacionespermitidasenelarchivoabiertoporotrosprocesos:Shared,LockRead,LockWriteyLockReadWrite.
númeroarchivo Requerido.Unnúmerodearchivoválidoentre1y511inclusive.ParaobtenerelnúmerodelsiguientearchivodisponibleseutilizalafunciónFreeFile.
longitudregistro Opcional.Númeroigualoinferiora32.767bytes.Enarchivosabiertosparaaccesoaleatorio,estevaloreslalongituddelregistro.Paraarchivossecuenciales,estevaloreselnúmerodecaracteresalmacenadosenbúfer.
Comentarios
AntesdepoderejecutarunaoperacióndeE/Senunarchivo,éstedebeestarabierto.OpenasignaunbúferparaoperacionesdeE/Sconelarchivoydeterminaelmododeaccesoquesedebeutilizarconelbúfer.
Sielarchivoespecificadoconrutaaccesonoexiste,secreaalabrirunarchivoenlosmodosAppend,Binary,OutputoRandom.
Sielarchivoyalohaabiertootroprocesoynosepermiteeltipodeaccesoespecificado,laoperaciónOpenfracasayseproduceunerror.
LacláusulaLenseignorasimodoesBinary.
ImportanteEnlosmodosBinary,InputyRandomsepuedeabrirunarchivoutilizandounnúmerodearchivodistintosinnecesidaddecerrarloantes.EnlosmodosAppendyOutputdebecerrarelarchivoparapoderabrirloconunnúmerodearchivodistinto.
OptionBase(Instrucción)
Seusaenelniveldemóduloparadeclararellímiteinferiorpredeterminadoparasubíndicesdematriz.
Sintaxis
OptionBase{0|1}
Comentarios
Comolabasepredeterminadaes0,lainstrucciónOptionBasenuncaserequiere.Sinembargo,siusalainstruccióndebeaparecerenunmóduloantesdecualquierprocedimiento.OptionBasesólopuedeaparecerunavezenunmóduloydebeprecederalasdeclaracionesdematrizqueincluyenlasdimensiones.
NotaLacláusulaToenlasinstruccionesDim,Private,Public,ReDimyStaticproporcionaunaformamásflexibledecontrolarelintervalodelossubíndicesdeunamatriz.Sinembargo,sinoestableceexplícitamenteellímiteinferiorconunacláusulaTo,puedeusarOptionBaseparacambiarellímiteinferiorpredeterminadoa1.LabasedeunamatrizcreadaconlafunciónArrayolapalabraclaveParamArrayescero;OptionBasenoafectaaParamArray(olafunciónArray,cuandosecalificaconelnombredesubibliotecadetipo,porejemploVBA.Array).
LainstrucciónOptionBasesóloafectaellímiteinferiordelasmatricesenelmódulodondeseubicalainstrucción.
OptionCompare(Instrucción)
Seusaenelniveldemóduloparadeclararelmododecomparaciónpredeterminadoqueseusacuandosecomparandatosdetipocadena.
Sintaxis
OptionCompare{Binary|Text|Database}
Comentarios
Siseusa,lainstrucciónOptionComparedebeaparecerenunmóduloantesdecualquierprocedimiento.
LainstrucciónOptionCompareespecificaelmétododecomparacióndecadena(Binary,TextoDatabase)paraunmódulo.SiunmódulonoincluyeunainstrucciónOptionCompare,elmétododecomparacióndetextopredeterminadoesBinary.
OptionCompareBinarycomparacadenasusandocomocriteriodecomparaciónunordenderivadodelasrepresentacionesinternasbinariasdeloscaracteres.EnMicrosoftWindows,laordenaciónsedeterminadeacuerdoconlapáginadecódigos.Enelejemplosiguientesemuestrauncriteriodeordenaciónbinariotípico:
A<B<E<Z<a<b<e<z<À<Ê<Ø<à<ê<ø
OptionCompareTextcomparacadenasusandocomocriteriounaordenacióndetextoquenodistinguemayúsculasdeminúsculasdeterminadoporlaconfiguraciónregionaldelsistema.CuandoseordenanlosmismoscaracteresmedianteOptionCompareText,seproducelasiguienteordenacióndetexto:
(A=a)<(À=à)<(B=b)<(E=e)<(Ê=ê)<(Z=z)<(Ø=ø)
SolamentepuedeutilizarOptionCompareDatabasedentrodeMicrosoftAccess.Estodacomoresultadocomparacionesdecadenabasadasenelorden,queestádeterminadoporelidentificadorlocaldelabasededatosenlaquetienenlugarlascomparacionesdecadena.
OptionExplicit(Instrucción)
Seusaenelniveldemóduloparaforzardeclaracionesexplícitasdetodaslasvariablesendichomódulo.
Sintaxis
OptionExplicit
Comentarios
Siseusa,lainstrucciónOptionExplicitdebeaparecerenunmóduloantesdecualquierprocedimiento.
CuandoOptionExplicitapareceenunmódulo,debedeclararexplícitamentetodaslasvariablesmediantelasinstruccionesDim,Private,Public,ReDimoStatic.Siintentausarunnombredevariablenodeclarado,ocurriráunerrorentiempodecompilación.
SinousalainstrucciónOptionExplicittodaslasvariablesnodeclaradassonVariant,amenosqueeltipopredeterminadoestéespecificadodeotramaneraconunainstrucciónDeftipo.
NotaUtiliceOptionExplicitparaevitarescribirincorrectamenteelnombredeunavariableexistenteoparaevitarconfusionesenelcódigo,dondeelalcancedelavariablenoestáclaro.
OptionPrivate(Instrucción)
Cuandoseutilizaenaplicacioneshostquepermitenreferenciasatravésdemúltiplesproyectos,OptionPrivateModuleimpidequesehagareferenciaalcontenidodelmódulofueradelproyecto.Enlasaplicacioneshostquenopermitenestetipodereferencias,comoversionesindependientesdeVisualBasic,lainstrucciónOptionPrivatenotieneefecto.
Sintaxis
OptionPrivateModule
Comentarios
Siseusa,lainstrucciónOptionPrivatedebeaparecerenunniveldemódulo,antesdecualquierprocedimiento.
CuandounmódulocontieneOptionPrivateModule,laspartespúblicas,porejemplovariables,objetos,ytiposdefinidosporelusuariodeclaradosenelniveldemódulotodavíaestándisponiblesdentrodelproyectoquecontieneelmódulo,peronoestándisponiblesparaotrasaplicacionesoproyectos.
NotaOptionPrivatesóloseutilizaparaaplicacioneshostqueadmitenlacargasimultáneademúltiplesproyectosypermitenreferenciasentrelosproyectoscargados.Porejemplo,MicrosoftExcelpermitecargarmúltiplesproyectosysepuedeutilizarOptionPrivateModulepararestringirla
visibilidaddeproyectoscruzados.AunqueVisualBasicpermitecargarmúltiplesobjetos,nuncasepermitenenVisualBasiclasreferenciasentreproyectos.
Print#(Instrucción)
Escribeenunarchivosecuenciallosdatosconformatodepresentación.
Sintaxis
Print#númeroarchivo,[listasalida]
LasintaxisdelainstrucciónPrint#constalassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivoválido.listasalida Opcional.Expresiónolistadeexpresionespara
imprimir.
Valor
Elargumentolistasalidatienelosvaloressiguientes:
[{Spc(n)|Tab[(n)]}][expresión][posicióncarácter]
Parte DescripciónSpc(n) Seutilizaparainsertarcaracteresdeespacioenlasalida,
dondeneselnúmerodecaracteresdeespacioparainsertar.Tab(n) Seutilizaparacolocarelpuntodeinserciónenunanúmero
decolumnaabsoluta,dondeneselnúmerodecolumna.UtiliceTabsinargumentosparacolocarelpuntodeinserciónalcomienzodelasiguientezonadeimpresión.
expresión Expresiónnuméricaoexpresióndecadenaquesevaaimprimir.
posicióncarácter Especificaelpuntodeinsercióndelcaráctersiguiente.Seutilizaunpuntoycoma(;)paraespecificarqueelpuntodeinsercióndebeestarinmediatamentedespuésdelúltimocaráctermostrado.UtiliceTab(n)paracolocarelpuntodeinserciónenunnúmerodecolumnaabsoluta.UtiliceTabsinargumentosparacolocarelpuntodeinserciónalcomienzodelasiguientezonadeimpresión.Siseomiteposicióncarácter,elsiguientecarácterseimprimeenlalíneasiguiente.
Comentarios
LosdatosqueseescribenenunarchivoconPrint#seleennormalmenteconLineInput#oInput.
Siomitelistasalidaysóloincluyeunseparadordelistasdespuésdenúmeroarchivo,seimprimeunalíneaenblancoenelarchivo.Sepuedensepararvariasexpresionespormediodeunespacioenblancoodeunpuntoycoma.
EnelcasodedatosdetipoBooleanseimprimeTrueoFalse.LaspalabrasclaveTrueyFalsenosetraducen,cualquieraquesealaconfiguraciónregional.
LosdatosdetipoDateseescribenenelarchivoutilizandoelformatocortodefechaestándarreconocidoporelsistema.Cuandonoseponeelcomponentecorrespondientealafechaoalahora,oésteesigualacero,sóloseescribeenel
archivolapartesuministrada.
NoseescribenadaenelarchivosilosdatosdelistasalidasondetipoEmpty.Sinembargo,silistasalidaesNull,Nullseescribeenelarchivo.
ParadatosdeError,lasalidaaparececomoErrorcódigoerror.LapalabraclaveErrornosetraducen,cualquieraquesealaconfiguraciónregional.
TodoslosdatosqueseescribenenelarchivoconPrint#seadaptanregionalmente;esdecir,sedaformatoaldatousandoelseparadordecimaladecuado.
PuestoquePrint#escribeunaimagendelosdatosenelarchivo,debedelimitarlosdatosparaqueseimprimancorrectamente.SiutilizaTabsinargumentosparamoverlaposicióndeimpresiónalasiguientezonadeimpresión,Print#tambiénescribeenelarchivolosespaciosentrecamposdeimpresión.
NotaSienelfuturodesealeerdatosdeunarchivopormediodelainstrucciónInput#,utilicelainstrucciónWrite#envezdelainstrucciónPrint#paraescribirlosdatosenelarchivo.LautilizacióndeWrite#aseguralaintegridaddecadacampodedatosseparado,aldelimitarloadecuadamente,demodoquesepuedaleerotravezutilizandoInput#.LautilizacióndeWrite#aseguratambiénquelosdatossepuedanleercorrectamenteencualquierconfiguraciónregional.
Private(Instrucción)
Seusaenelniveldemóduloparadeclararvariablesprivadasyparaasignarespaciodealmacenamiento.
Sintaxis
Private[WithEvents]nombre_variable[([subíndices])][As[New]tipo][,[WithEvents]nombre_variable[([subíndices])][As[New]tipo]]...
LasintaxisdelainstrucciónPrivateconstadelassiguientespartes:
Parte DescripciónWithEvents Opcional.Palabraclavequeespecificaquenombre_variablees
unavariabledeobjetoutilizadapararesponderaeventosdesencadenadosporunobjetoActiveX.WithEventssolamenteesválidoenmódulosdeclase.PuededeclarartantasvariablesindividualescomodeseemedianteWithEvents,peronopuedecrearmatricesconWithEvents.NopuedeutilizarNewconWithEvents.
nombre_variable
Requerido.Nombredelavariable;siguelasconvencionesestándardenombresdevariable.
subíndices Opcional.Dimensionesdeunavariabledematriz;sepuedendeclararhasta60dimensionesmúltiples.Elargumentosubíndicesutilizalasiguientesintaxis:
[inferiorTo]superior[,[inferiorTo]superior]... Cuandonosedeclaraexplícitamenteeninferior,ellímite
inferiordeunamatrizsecontrolamediantelainstrucciónOptionBase.EllímiteinferiorescerosinohayningunainstrucciónOptionBase.
New Opcional.Palabraclavequepermitelacreaciónimplícitadeunobjeto.SiutilizaNewcuandodeclaralavariabledeobjeto,secreaunanuevainstanciadelobjetocomoprimerareferencia,deformaquenotienequeutilizarlainstrucciónSetparaasignarlareferenciadelobjeto.LapalabraclaveNewnosepuedeutilizarparadeclararvariablesdecualquiertipodedatosintrínseco,nosepuedeutilizarparadeclararinstanciasdeobjetosdependientesynosepuedeutilizarconWithEvents.
tipo Opcional.Tipodedatosdelavariable;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String(paracadenasdelongitudvariable),String*length(paracadenasdelongitudfija),Object,Variant,untipodefinidoporelusuario,ountipodeobjeto.UtiliceunacláusulaAstipodistintaparacadavariablequedefina.
Comentarios
LasvariablesPrivatesóloestándisponiblesparaelmóduloenelquesedeclaran.
UselainstrucciónPrivateparadeclarareltipodedatosdeunavariable.Porejemplo,lainstrucciónsiguientedeclaraunavariablecomountipoInteger:
PrivateNúmeroDeEmpleadosAsInteger
UtilicetambiénunainstrucciónPrivateparadeclarareltipodeobjetodeunavariable.Lasiguientelíneadeclaraunavariableparaunanuevainstanciadeunahojadecálculo.
PrivateXAsNewWorksheet
SinoutilizalapalabraclaveNewaldeclararunavariabledeobjeto,lavariablequeserefierealobjetodebeasignarseaunobjetoexistentemediantelainstrucciónSetantesdequepuedautilizarse.Hastaqueseleasigneunobjeto,lavariabledeobjetodeclaradatieneelvalorespecialNothing,elcualindicaquenoserefiereaningunainstanciaenparticulardeunobjeto.
SinoseespecificauntipodedatosountipodeobjetoynoexisteunainstrucciónDeftipoenelmódulo,lavariablepredeterminadaesVariant.
TambiénpuedeusarlainstrucciónPrivateconparéntesisvacíosparadeclararmatricesdinámicas.Despuésdedeclararunmatrizdinámica,uselainstrucciónReDimdentrodeunprocedimientoparadefinirelnúmerodedimensionesyelementosdeunamatriz.SiintentavolveradeclararunadimensiónparaunavariabledematrizcuyotamañosehaespecificadoexplícitamenteenunainstrucciónPrivate,PublicoDim,ocurriráunerror.
Cuandoseinicializanlasvariables,unavariablenuméricaseinicializaa0,unacadenadelongitudvariableseinicializaaunacadenadelongitudcero("")yunacadenadelongitudfijaserellenaconceros.LasvariablesVariantseinicializanaEmpty.Cadaelementodeunavariabledeuntipodefinidoporelusuarioseinicializacomosifueraunavariabledistinta.
NotaCuandoutilicelainstrucciónPrivateenunprocedimiento,generalmenteincluirádichainstrucciónPrivatealprincipiodelprocedimiento.
PropertyGet(Instrucción)
Declaraelnombre,losargumentosyelcódigoquecomponenelcuerpodeunprocedimientoProperty,elcualobtieneelvalordeunapropiedad.
Sintaxis
[Public|Private|Friend][Static]PropertyGetnombre[(lista_argumentos)][Astipo][instrucciones][nombre=expresión][ExitProperty][instrucciones][nombre=expresión]
EndProperty
LasintaxisdelainstrucciónPropertyGetconstadelassiguientespartes:
Parte DescripciónPublic Opcional.IndicaqueelprocedimientoPropertyGetes
accesibleparatodoslosdemásprocedimientosdetodoslosmódulos.SiseusaenunmóduloquecontieneunainstrucciónOptionPrivate,elprocedimientonoestarádisponiblefueradelproyecto.
Private Opcional.IndicaqueelprocedimientoPropertyGetsóloesaccesibleparaotrosprocedimientoscontenidosenelmódulodondesedeclara.
Friend Opcional.Seusasolamenteenunmódulodeclase.IndicaqueelprocedimientoPropertyGetesvisibleatravésdelproyecto,peronoesvisibleparauncontroladordeunainstanciadeunobjeto.
Static Opcional.IndicaquelasvariableslocalesdelprocedimientoPropertyGetseconservanentredistintasllamadas.ElatributoStaticnoafectaalasvariablesdeclaradasfueradelprocedimientoPropertyGet,inclusoaunqueseutilicenenelmismo.
nombre Requerido.NombredelprocedimientoPropertyGet;siguelasconvencionesestándardenombresdevariables,exceptoenqueelnombrepuedeserelmismoqueeldeunprocedimientoPropertyLetoPropertySetdelmismomódulo.
lista_argumentos
Opcional.ListadevariablesquerepresentanargumentosquesepasanalprocedimientoPropertyGetcuandosellamaaéste.Losdistintosargumentosseseparanmediantecomas.ElnombreyeltipodedatosdecadaargumentodeunprocedimientoPropertyGetdebenserigualesqueenlosargumentoscorrespondientesdeunprocedimientoPropertyLet(silohay).
tipo Opcional.TipodedatosdelvalordevueltoporelprocedimientoPropertyGet;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String(exceptolongitudfija),Object,Variant,tipodefinidoporelusuario,ymatrices.
EltipoderetornodeunprocedimientoPropertyGetdebeserdelmismotipodedatosqueelúltimo(aveceselúnico)argumentodeunprocedimientoPropertyLetcorrespondiente(silohay)quedefineelvalorasignadoalapropiedadenlapartederechadeunaexpresión.
instrucciones Opcional.CualquiergrupodeinstruccionesqueseejecutandentrodelcuerpodelprocedimientoPropertyGet.
expresión Opcional.ValordelapropiedaddevueltoporelprocedimientodefinidoporlainstrucciónPropertyGet.
Elargumentolista_argumentosconstadelassiguientespartesysintaxis:
[Optional][ByVal|ByRef][ParamArray]nombre_variable[()][Astipo][=valor_predeterminado]
Parte Descripción
Optional Opcional.Indicaquenosenecesitaunargumento.Siseutiliza,todoslosargumentossubsiguientesdelista_argumentostambiéndebenseropcionalesysedebendeclararmediantelapalabraclaveOptional.
ByVal Opcional.Indicaqueelargumentosepasaporvalor.ByRef Opcional.Indicaqueelargumentosepasaporreferencia.
ByRefeselargumentopredeterminadoenVisualBasic.ParamArray Opcional.Sóloseutilizacomoúltimoargumentode
lista_argumentosparaindicarqueelargumentofinalesunamatrizOptionaldeelementostipoVariant.LapalabraclaveParamArraylepermiteproporcionarunnúmeroarbitrariodeargumentos.NosepuedeutilizarconByVal,ByRefuOptional.
nombre_variable
Requerido.Nombredelavariablequerepresentaalargumento;siguelasconvencionesestándardenombresdevariables.
tipo Opcional.Eltipodedatosdelargumentopasadoalprocedimiento;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(nocompatibleactualmente),Date,String(sólodelongitudvariable),Object,Variant,ountipodeobjetoespecífico.SielparámetronoesOptional,sepuedeespecificartambiénuntipodefinidoporelusuario.
valor_predeterminado
Opcional.Cualquierconstanteoexpresióndeconstante.SóloesválidoparaparámetrosOptional.SieltipoesObject,unvalorpredeterminadoexplícitosólopuedeserNothing.
Comentarios
SinoseespecificaexplícitamentemediantePublic,PrivateoFriend,losprocedimientosPropertysonpúblicosdemanerapredeterminada.SinoseusaStatic,elvalordelasvariableslocalesnoseconservaentredistintasllamadas.LapalabraclaveFriendsolamentepuedeutilizarseenmódulosdeclase.Sinembargo,sepuedeaccederalosprocedimientosFriendporprocedimientosencualquiermódulodeunproyecto.UnprocedimientoFriendnoapareceenla
bibliotecadetipodesuclaseprimaria.
Todoelcódigoejecutabledebeestarenprocedimientos.NopuededefinirunprocedimientoPropertyGetdentrodeotroprocedimientoProperty,SuboFunction.
LainstrucciónExitPropertycausalainmediatasalidadeunprocedimientoPropertyGet.LaejecucióndelprogramacontinúaconlainstrucciónquesiguealainstrucciónquellamóalprocedimientoPropertyGet.CualquiernúmerodeinstruccionesExitPropertypuedeaparecerencualquierlugardeunprocedimientoPropertyGet.
AligualqueunprocedimientoSubyPropertyLet,unprocedimientoPropertyGetesunprocedimientodistintoquepuedetomarargumentos,llevaracabounaseriedeinstruccionesycambiarelvalordesusargumentos.Sinembargo,adiferenciadeunprocedimientoSuboPropertyLet,puedeutilizarunprocedimientoPropertyGetenelladoderechodeunaexpresióndelamismaformaenqueutilizaFunctionoelnombredeunapropiedadcuandodeseadevolverelvalordeunapropiedad.
PropertyLet(Instrucción)
Declaraelnombre,losargumentos,yelcódigoqueformanelcuerpodeunprocedimientoPropertyLet,elcualasignaunvaloraunapropiedad.
Sintaxis
[Public|Private|Friend][Static]PropertyLetnombre([lista_argumentos,]valor)[instrucciones][ExitProperty][instrucciones]
EndProperty
LasintaxisdelainstrucciónPropertyLetconstadelassiguientespartes:
Parte DescripciónPublic Opcional.IndicaqueelprocedimientoPropertyLetes
accesibleparatodoslosdemásprocedimientosdetodoslosmódulos.SiseusaenunmóduloquecontieneunainstrucciónOptionPrivate,elprocedimientonoseencuentradisponiblefueradelproyecto.
Private Opcional.IndicaqueelprocedimientoPropertyLetesaccesiblesóloparaotrosprocedimientosdelmódulodondesehadeclarado.
Friend Opcional.Sóloseutilizaenunmódulodeclase.IndicaqueelprocedimientoPropertyLetesvisibleatravésdelproyecto,peronoporuncontroladordeunainstanciadeunobjeto.
Static Opcional.IndicaquelasvariableslocalesdelprocedimientoPropertyLetseconservanentredistintasllamadas.ElatributoStaticnoafectaalasvariablesquesehandeclaradofueradelprocedimientoPropertyLet,inclusoaunqueseusenenelprocedimiento.
nombre Requerido.NombredelprocedimientoPropertyLet;siguelasconvencionesestándardenombresdevariables,exceptoenqueelnombrepuedeserelmismoqueeldelosprocedimientosPropertyGetoPropertySetdelmismomódulo.
lista_argumentos
Requerido.ListadevariablesquerepresentanargumentosquesepasanalllamaralprocedimientoPropertyLet.Losdistintosargumentosseseparanmediantecomas.ElnombreyeltipodedatosdecadaargumentodeunprocedimientoPropertyLetdebenserigualesquelosargumentoscorrespondientesdeunprocedimientoPropertyGet.
valor Requerido.Variablequecontieneelvalorqueseasignaalapropiedad.Cuandosellamaalprocedimiento,esteargumentoapareceenlapartederechadelaexpresiónquehacelallamada.EltipodedatosdevalordebeserelmismoqueeldeltipodevueltoporelcorrespondienteprocedimientoPropertyGet.
instrucciones Opcional.CualquiergrupodeinstruccionesqueseejecutedentrodelprocedimientoPropertyLet.
Elargumentolista_argumentosconstadelassiguientespartesysintaxis:
[Optional][ByVal|ByRef][ParamArray]nombre_variable[()][Astipo][=valor_predeterminado]
Parte DescripciónOptional Opcional.Indicaquenosenecesitaunargumento.Sise
utiliza,todoslosargumentossubsiguientesdelista_argumentostambiéndebenseropcionalesysedeben
declararmediantelapalabraclaveOptional.ObservequelapartederechadeunaexpresiónPropertyLetnopuedeserOptional.
ByVal Opcional.Indicaqueelargumentosepasaporvalor.ByRef Opcional.Indicaqueelargumentosepasaporreferencia.
ByRefeselargumentopredeterminadoenVisualBasic.ParamArray Opcional.Sóloseutilizacomoelúltimoargumentode
lista_argumentosparaindicarqueelargumentofinalesunamatrizOptionaldeelementostipoVariant.LapalabraclaveParamArraylepermiteproporcionarunnúmeroarbitrariodeargumentos.NosepuedeutilizarconByVal,ByRefuOptional.
nombre_variable
Requerido.Elnombredelavariablequerepresentaalargumento;siguelasconvencionesestándardenombresdevariables.
tipo Opcional.Eltipodedatosdelargumentopasadoalprocedimiento;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String(solamentedelongitudvariable),Object,Variant,ountipodeobjetoespecífico.SielparámetronoesOptional,tambiénsepuedeespecificaruntipodefinidoporelusuario.
valor_predeterminado
Opcional.Cualquierconstanteoexpresióndeconstante.SóloesválidoparaparámetrosOptional.SieltipoesObject,unvalorpredeterminadoexplícitosólopuedeserNothing.
NotaCualquierinstrucciónPropertyLetdebedefinirporlomenosunargumentoparaelprocedimientoquedefine.Eseargumento(oelúltimoargumentosihaymásdeuno)contieneelvalorrealqueseasignaalapropiedadcuandoseinvocaelprocedimientodefinidoporlainstrucciónPropertyLet.Eseargumentosedenominavalorenlasintaxisanterior.
Comentarios
SinoseespecificaexplícitamentemediantePublic,PrivateoFriend,los
procedimientosPropertysonpúblicosdemanerapredeterminada.SinoseusaStatic,elvalordelasvariableslocalesnoseconservaentredistintasllamadas.LapalabraclaveFriendsolamentesepuedeusarenmódulosdeclase.Sinembargo,losprocedimientosencualquiermódulodeunproyectopuedenaccederalosprocedimientosFriend.UnprocedimientoFriendnoapareceenlabibliotecadetipodesuclaseprimaria,nisepuedeenlazarposteriormente.
Todocódigoejecutabledebeestarenprocedimientos.NopuededefinirunprocedimientoPropertyLetdentrodeotroprocedimientoProperty,SuboFunction.
LainstrucciónExitPropertycausalainmediatasalidadeunprocedimientoPropertyLet.LaejecucióndelprogramacontinúaconlainstrucciónquesiguealainstrucciónquellamóalprocedimientoPropertyLet.CualquiernúmerodeinstruccionesExitPropertypuedeaparecerencualquierlugardeunprocedimientoPropertyLet.
AligualqueunprocedimientoFunctionyPropertyGet,unprocedimientoPropertyLetesunprocedimientodistintoquepuedetomarargumentos,llevaracabounaseriedeinstruccionesycambiarelvalordesusargumentos.Sinembargo,adiferenciadeunprocedimientoFunctionyPropertyGet,loscualesdevuelvenunvalor,unprocedimientoPropertyLetsólosepuedeusarenelladoizquierdodeunaexpresióndeasignacióndepropiedadodeunainstrucciónLet.
PropertySet(Instrucción)
Declaraelnombre,losargumentos,yelcódigoquecomponenelcuerpodeunprocedimientoProperty,elcualasignaunareferenciaaunobjeto.
Sintaxis
[Public|Private|Friend][Static]PropertySetnombre([lista_argumentos,]referencia)[instrucciones][ExitProperty][instrucciones]
EndProperty
LasintaxisdelainstrucciónPropertySetconstadelassiguientespartes:
Parte DescripciónOptional Opcional.Indicaqueelargumentolopuedeproporcionarel
llamadorono.Public Opcional.IndicaqueelprocedimientoPropertySetes
accesibleparatodoslosdemásprocedimientosdetodoslosmódulos.SiseusaenunmóduloquecontienelainstrucciónOptionPrivate,elprocedimientonoestádisponiblefueradelproyecto.
Private Opcional.IndicaqueelprocedimientoPropertySetesaccesiblesóloparaotrosprocedimientosdelmódulodondesedeclara.
Friend Opcional.Seutilizasóloenunmódulodeclase.IndicaqueelprocedimientoPropertySetesvisibleatravésdelproyecto,peronoporuncontroladordeunainstanciadeunobjeto.
Static Opcional.Indicaquelasvariableslocalesdelprocedimiento
PropertySetseconservanentredistintasllamadas.ElatributoStaticnoafectaalasvariablesquesedeclaranfueradelprocedimientoProperty,inclusoaunqueseusenenelprocedimiento.
nombre Requerido.NombredelprocedimientoPropertySet;siguelasconvencionesestándardenombresdevariables,exceptoenqueelnombrepuedeserelmismoqueeldelosprocedimientosPropertyGetoPropertyLetdelmismomódulo.
lista_argumentos
Requerido.ListadevariablesquerepresentanargumentosquesepasanalprocedimientoPropertySetcuandoselellama.Losdistintosargumentosseseparanmediantecomas.
referencia Requerido.Variablequecontienelareferenciadeobjetoutilizadaenlapartederechadelaasignacióndereferenciadeobjeto.
instrucciones Opcional.CualquiergrupodeinstruccionesqueseejecutandentrodelcuerpodelprocedimientoProperty.
Elargumentolista_argumentosconstadelassiguientespartesysintaxis:
[Optional][ByVal|ByRef][ParamArray]nombre_variable[()][Astipo][=valor_predeterminado]
Parte DescripciónOptional Opcional.Indicaquenosenecesitaunargumento.Sise
utiliza,todoslosargumentossubsiguientesdelista_argumentostambiéndebenseropcionalesysedebendeclararmediantelapalabraclaveOptional.ObservequelapartederechadeunaexpresiónPropertySetnopuedeserOptional.
ByVal Opcional.Indicaqueelargumentosepasaporvalor.ByRef Opcional.Indicaqueelargumentosepasaporreferencia.
ByRefeselmodopredeterminadoenVisualBasic.ParamArray Opcional.Sóloseutilizacomoelúltimoargumentoen
lista_argumentosparaindicarqueelargumentofinalesunamatrizOptionaldeelementostipoVariant.Lapalabraclave
ParamArraylepermiteproporcionarunnúmeroarbitrariodeargumentos.NosepuedeutilizarconByVal,ByRefuOptional.
nombre_variable
Requerido.Nombredelavariablequerepresentaelargumento;siguelasconvencionesestándardenombresdevariables.
tipo Opcional.Tipodedatosdelargumentoquepasaalprocedimiento;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String(solamentelongitudvariable),Object,Variant,ountipodeobjetoespecífico.SielparámetronoesOptional,sepuedeespecificartambiénuntipodefinidoporelusuario.
valor_predeterminado
Opcional.Cualquierconstanteoexpresióndeconstante.SóloesválidoparaparámetrosOptional.SieltipoesObject,unvalorpredeterminadoexplícitosólopuedeserNothing.
NotaCualquierinstrucciónPropertySetdebedefinirporlomenosunargumentoparaelprocedimientoquedefine.Eseargumento(oelúltimoargumentosihaymásdeuno)contendrálareferenciadelobjetorealparalapropiedadcuandoseinvoqueelprocedimientodefinidoporlainstrucciónPropertySet.Seledenominareferenciaenlasintaxisanterior.NopuedeserOptional.
Comentarios
SinoseespecificanexplícitamentemediantePublic,PrivateoFriend,losprocedimientosPropertyseránpúblicosdemanerapredeterminada.SinoseusaStatic,elvalordelasvariableslocalesnoseconservaentredistintasllamadas.LapalabraclaveFriendsolamentesepuedeusarenmódulosdeclase.Sinembargo,losprocedimientosencualquiermódulodeunproyectopuedenaccederalosprocedimientosFriend.UnprocedimientoFriendnoapareceenlabibliotecadetipodesuclaseprimaria,nisepuedeenlazarposteriormente.
Todocódigoejecutabledebeestarenprocedimientos.NopuededefinirunprocedimientoPropertySetdentrodeotroprocedimientoProperty,Subo
Function.
LainstrucciónExitPropertycausalainmediatasalidadeunprocedimientoPropertySet.LaejecucióndelprogramacontinúaconlainstrucciónquesiguealainstrucciónquellamóalprocedimientoPropertySet.CualquiernúmerodeinstruccionesExitPropertypuedeaparecerencualquierlugardeunprocedimientoPropertySet.
AligualqueunprocedimientoFunctionyPropertyGet,PropertySetesunprocedimientodistintoquepuedetomarargumentos,llevaracabounaseriedeinstruccionesycambiarelvalordesusargumentos.Sinembargo,adiferenciadeunprocedimientoFunctionyPropertyGet,loscualesdevuelvenunvalor,unprocedimientoPropertySetsólosepuedeusarenelladoizquierdodeunaasignacióndereferenciadeobjeto(instrucciónSet).
Public(Instrucción)
Seusaenelniveldemóduloparadeclararvariablespúblicasyasignarlesespacioparaalmacenamiento.
Sintaxis
Public[WithEvents]nombre_variable[([subíndices])][As[New]tipo][,[WithEvents]nombre_variable[([subíndices])][As[New]tipo]]...
LasintaxisdelainstrucciónPublicconstadelassiguientespartes:
Parte DescripciónWithEvents Opcional.Lapalabraclaveespecificaquevarnameesuna
variabledeobjetoutilizadapararesponderaloseventosdesencadenadosporunobjetoActiveX.WithEventsesválidosolamenteenmódulosdeclase.PuededeclarartantasvariablesindividualescomodeseemedianteWithEvents,peronopuedecrearmatricesconWithEvents.NopuedeutilizarNewconWithEvents.
nombre_variable
Requerido.Nombredelavariable;siguelasconvencionesestándardenombresdevariable.
Subíndices Opcional.Dimensionesdeunavariabledematriz;sepuedendeclararhasta60dimensionesmúltiples.Elargumentosubíndicesusalasintaxissiguiente:
[inferiorTo]superior[,[inferiorTo]superior]...
Cuandonosedeclaraexplícitamenteeninferior,ellímiteinferiordeunamatrizsecontrolamediantelainstrucciónOptionBase.EllímiteinferiorescerosinohayningunainstrucciónOptionBase.
New Opcional.Palabraclavequepermitelacreaciónimplícitadeunobjeto.SiutilizaNewcuandodeclaralavariabledeobjeto,secreaunanuevainstanciadelobjetocomoprimerareferencia,deformaquenotienequeutilizarlainstrucciónSetparaasignarlareferenciadeobjeto.LapalabraclaveNewnosepuedeutilizarparadeclararvariablesdecualquiertipodedatosintrínseco,nosepuedeutilizarparadeclararinstanciasdeobjetosdependientesynosepuedeutilizarconWithEvents.
tipo Opcional.Tipodedatosdelavariable;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String,(paracadenasdelongitudvariable),String*length(paracadenasdelongitudfija),Object,Variant,
untipodefinidoporelusuario,ountipodeobjeto.UseunacláusulaAstipodistintaparacadavariablequesedefina.
Comentarios
LasvariablesdeclaradasmediantelainstrucciónPublicestándisponiblesparatodoslosprocedimientosentodoslosmódulosdetodaslasaplicaciones,amenosqueOptionPrivateModuleestéenefecto;enestecaso,lasvariablessólosonpúblicasdentrodelproyectoenelqueresiden.
PrecauciónLainstrucciónPublicnosepuedeusarenunmódulodeclaseparadeclararunavariabledecadenadelongitudfija.
UselainstrucciónPublicparadeclarareltipodedatosdeunavariable.Porejemplo,lainstrucciónsiguientedeclaraunavariablecomodetipoInteger:
PublicNúmeroDeEmpleadosAsInteger
UtilicetambiénlainstrucciónPublicparadeclarareltipodeobjetodeunavariable.Lainstrucciónsiguientedeclaraunavariableparaunanuevainstanciadeunahojadecálculo.
PublicXAsNewWorksheet
SinoutilizalapalabraclaveNewaldeclararunavariabledeobjeto,lavariablequeserefiereaunobjetodebeasignarseaunobjetoexistentemediantelainstrucciónSetantesdequesepuedausar.Hastaqueseleasigneunobjeto,lavariabledeobjetodeclaradatieneelvalorespecialNothing,elcualindicaquenoserefiereaningunainstanciaenparticulardeunobjeto.
TambiénpuedeutilizarunainstrucciónPublicconparéntesisvacíosparadeclararmatricesdinámicas.Despuésdedeclararunamatrizdinámica,uselainstrucciónReDimdentrodeunprocedimientoparadefinirelnúmerodedimensionesyelementosdelamatriz.SiintentavolveradeclararundimensiónparaunamatrizcuyotamañosehaespecificadoexplícitamenteenunainstrucciónPrivate,PublicoDim,ocurriráunerror.
SinoespecificauntipodedatosountipodeobjetoynoexisteunainstrucciónDeftipoenelmódulo,lavariableesVariantdemanerapredeterminada.
Cuandoseinicializanlasvariables,unavariablenuméricaseinicializaa0,unacadenadelongitudvariableseinicializaaunacadenadelongitudcero("")yunacadenadelongitudfijaserellenaconceros.LasvariablesVariantseinicializanaEmpty.Cadaelementodeunavariabledeuntipodefinidoporelusuarioseinicializacomosifueraunavariabledistinta.
Put(Instrucción)
Escribeenunarchivodediscolosdatoscontenidosenunavariable.
Sintaxis
Put[#]númeroarchivo,[númeroregistro],nombrevariable
LasintaxisdelainstrucciónPutconstalassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivoválido.númeroregistro Opcional.TipoVariant(Long).Númeroderegistro
(archivosenmodoRandom)onúmerodebyte(archivosenmodoBinary,enelcualsecomienzaaescribir.
nombrevariable Requerido.Nombredelavariablequecontienelainformaciónquesevaaescribireneldisco.
Comentarios
LosdatosqueseescribenconPutnormalmenteseleendeunarchivoconGet.
Elprimerregistroobytedeunarchivoseencuentraenlaposición1,elsegundoenlaposición2yasísucesivamente.Siomitenúmeroregistro,seescribeelsiguienteregistroobytequeseencuentradespuésdelaúltimainstrucciónGetoPutoaquélalqueseñalalaúltimafunciónSeek.Debeincluircomasdedelimitación,porejemplo:
Put#4,,BúferArchivo
EnlosarchivosabiertosenmodoRandomrigenlassiguientesreglas:
AunquelalongituddelosdatosescritosseamenorquelaespecificadaenlacláusulaLendelainstrucciónOpen,Putescribelosregistrossiguientessegúnloslímitesdelongitudderegistroyllenaelespacioentreelfindeunregistroyelcomienzodelsiguienteconelcontenidodelbúferdelarchivo.Puestoquelacantidaddedatosderellenonosepuededeterminarconcerteza,esconvenientequeelregistrotengalamismalongitudquelosdatosqueseescriben.SilalongituddelosdatosqueseescribenesmayorquelaespecificadaenlacláusulaLendelainstrucciónOpen,ocurreunerror.
Silavariableenlaqueseescribeesunacadenadelongitudvariable,la
instrucciónPutescribeundescriptorde2bytesqueindicalalongituddelacadenayluegoescribelavariable.Lalongituddelregistro,especificadaporlacláusuladelainstrucciónOpen,debeserporlomenos2bytesmayorquelalongitudrealdelacadena.
SilavariablequesevaaescribiresunVariantdeuntiponumérico,Putescribe2bytesparaidentificarelVarTypedelVariantyluegoescribelavariable.Porejemplo,alescribirunVariantdeVarType3,Putescribe6bytes:2bytesparaidentificarunVariantdeVarType3(Long)y4bytesquecontienenlosdatosdeltipoLong.Lalongituddelregistro,especificadaporlacláusulaLendelainstrucciónOpen,debeserporlomenos2bytesmayorqueelnúmerorealdebytesnecesariosparaalmacenarlavariable.NotaPuedeutilizarlainstrucciónPutparaescribirunamatrizVariantendisco,peronopuedeemplearPutparaescribirendiscounVariantescalarquecontieneunamatriz.TampocopuedeutilizarPutparaescribirobjetosendisco.
SilavariableescritaesunaVariantdeltipoVarType8(String),Putescribe2bytesparaidentificarelVarType,2bytesparaindicarlalongituddelacadenayluegolosdatosdelacadena.Lalongituddelregistro,especificadaporlacláusulaLendelainstrucciónOpen,debeserporlomenos4bytesmayorquelalongitudrealdelacadena.
Silavariableescritaesunamatrizdinámica,Putescribeundescriptorcuyalongitudequivalea2más8veceselnúmerodedimensiones,esdecir,2+8*NumberOfDimensions.Lalongituddelregistro,especificadaporlacláusulaLendelainstrucciónOpen,debesermayoroigualquelasumadetodoslosbytesnecesariosparaescribirlosdatosyeldescriptordelamatriz.Porejemplo,lasiguientedeclaracióndematrizrequiere118bytescuandolamatrizseescribeendisco.DimMiMatriz(1To5,1To10)AsInteger
Los118bytessedistribuyendelasiguienteforma:18bytesparaeldescriptor(2+8*2)y100bytesparalosdatos(5*10*2).
Silavariableescritaesunamatrizdetamañofijo,Putsolamenteescribelosdatos.Noseescribeendisconingúndescriptor.
Silavariablequeseescribeesdecualquierotrotipo(niunacadenadelongitudvariableniunaVariant),Putescribesolamentelosdatosdelavariable.LalongituddelregistroespecificadaporlacláusulaLendelainstrucciónOpendebesermayoroigualquelalongituddelosdatosescritos.
Putescribeelementosdetiposdefinidosporelusuariocomosiescribieracadaunoporseparado,peronocolocadatosderellenoentreloselementos.Eneldisco,unamatrizdinámicaenuntipodefinidoporelusuarioescritaconPutincluyecomoprefijoundescriptorcuyalongitudesiguala2más8veceselnúmerodedimensiones,esdecir,2+8*NumberOfDimensions.LalongituddelregistroespecificadaporlacláusulaLendelainstrucciónOpendebesermayoroigualquelasumadetodoslosbytesnecesariosparaescribirloselementosporseparado,incluyendoalgunasmatricesysusdescriptores.
ParaarchivosabiertosenmodoBinary,tienenvigenciatodaslasreglasdelmodoRandom,conlassiguientesexcepciones:
LacláusulaLendelainstrucciónOpennotieneefecto.Putescribetodaslasvariableseneldiscoenformacontigua,esdecirsinrellenoentreregistros.
Paracualquiermatrizdistintadelaindicadaenuntipodefinidoporelusuario,Putescribesolamentelosdatos.Noescribeningúndescriptor.
Putescribelascadenasdecaracteresdelongitudvariablequenosonelementosdetiposdefinidosporelusuariosineldescriptordelongitudde2bytes.Elnúmerodebytesqueseescribeesigualalnúmerodecaracteresdelacadena.Porejemplo,enlassiguientesinstruccionesseescribe10bytesenelarchivonúmero1:VarCadena$=String$(10,"")
Put#1,,VarCadena$
Randomize(Instrucción)
Inicializaelgeneradordenúmerosaleatorios.
Sintaxis
Randomize[número]
ElargumentoopcionalnúmeroesuntipoVariantocualquierexpresiónnuméricaválida.
Comentarios
LainstrucciónRandomizeutilizanúmeroparainicializarelgeneradordenúmerosaleatoriosdelafunciónRndyleasignaunnuevovalordesemilla.Siomitenúmero,elvalordevueltoporelrelojdelsistemaseusacomoelnuevovalordesemilla.
SinoutilizalainstrucciónRandomize,lafunciónRnd(sinargumentos)utilizaelmismonúmerocomovalordesemillalaprimeravezqueselainvoca,usandodespuéscomovalordesemillaelúltimonúmerogenerado.
NotaPararepetirsecuenciasdenúmerosaleatorios,llamealafunciónRndconunargumentonegativoantesdeutilizarlainstrucciónRandomizeconunargumentonumérico.AlutilizarlainstrucciónRandomizeconelmismovalordenúmeronoserepitelasecuenciaanterior.
ReDim(Instrucción)
Seutilizaenelniveldeprocedimientoparareasignarespaciodealmacenamientoparavariablesdematrizdinámica.
Sintaxis
ReDim[Preserve]nombre_variable(subíndices)[Astipo][,nombre_variable(subíndices)[Astipo]]...
LasintaxisdelainstrucciónReDimconstadelassiguientespartes:
Parte DescripciónPreserve Opcional.Palabraclaveutilizadaparaconservarlosdatosdeuna
matrizexistentecuandosecambiaeltamañodelaúltimadimensión.
nombre_variable
Requerido.Nombredelavariable;siguelasconvencionesestándardenombredevariable.
subíndices Requerido.Dimensionesdeunavariabledematriz;sepuedendeclararhasta60dimensionesmúltiples.Elargumentosubíndicesutilizalasintaxissiguiente:
[inferiorTo]superior[,[inferiorTo]superior]...
Cuandonosedeclaraexplícitamenteeninferior,ellímiteinferiordeunamatrizsecontrolamediantelainstrucciónOptionBase.EllímiteinferiorescerosinohayningunainstrucciónOptionBase.
tipo Opcional.Tipodedatosdelavariable;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String(paracadenasdelongitudvariable),String*length(paracadenasdelongitudfija),Object,Variant,untipodefinidoporelusuario,ountipodeobjeto.UtiliceunacláusulaAstipodistintaparacadavariablequedefina.ParaunaVariantquecontieneunamatriz,tipodescribeeltipodecadaelementodelamatriz,peronocambialaVariantaalgúnotrotipo.
Comentarios
LainstrucciónReDimseutilizaparaasignarocambiareltamañodeunamatrizdinámicaqueyasehadeclaradoformalmentemediantelasinstruccionesPrivate,PublicoDimconparéntesisvacíos(sinsubíndicesdedimensiones).
PuedeutilizarlainstrucciónReDimrepetidamenteparacambiarelnúmerodeelementosydimensionesdeunamatriz.Sinembargo,nopuededeclararunamatrizdeuntipodedatosyluegousarReDimparacambiarlamatrizaotrotipodedatos,amenosquelamatrizestécontenidaenunaVariant.SilamatrizestácontenidaenunaVariant,eltipodeloselementossepuedecambiarmedianteunacláusulaAstipo,amenosqueestéutilizandolapalabraclavePreserve,encuyocasonosepermitencambiosaltipodedatos.
SiutilizalapalabraclavePreservesólopuedecambiareltamañodelaúltimadimensióndelamatrizynoesposiblecambiarelnúmerodedimensiones.Porejemplo,silamatrizsólotieneunadimensión,puedecambiareltamañodeesadimensiónporqueeslaúltimayúnicadimensión.Sinembargo,silamatriztienedosomásdimensiones,sólopuedecambiarladimensióndelaúltimaytodavíaconservarelcontenidodelamatriz.Elejemplosiguientemuestracómopuedeaumentareltamañodelaúltimadimensióndeunamatrizdinámicasinborrarningunodelosdatosexistentescontenidosenlamatriz.
ReDimX(10,10,10)
...
ReDimPreserveX(10,10,15)
Demodoparecido,cuandoutilizaelargumentoPreservepuedecambiareltamañodelamatrizsólocambiandoellímitesuperior;cambiarellímiteinferiorproduceunerror.
Sihacequeunamatrizseamáspequeñadeloqueera,perderálosdatosdeloselementoseliminados.Sitransfiereunamatrizaunprocedimientoporreferencia,nopuedecambiareltamañodelamatrizdentrodelprocedimiento.
Cuandoseinicializanlasvariables,unavariablenuméricaseinicializaa0,unacadenadelongitudvariableseinicializaaunacadenadelongitudcero("")yunacadenadelongitudfijaserellenaconceros.LasvariablesVariantseinicializanaEmpty.Cadaelementodeunavariabledeuntipodefinidoporelusuarioseinicializacomosifueraunavariabledistinta.AunavariablequeserefiereaunobjetoseledebeasignarunobjetoexistentemediantelainstrucciónSetantesdequesepuedausar.Hastaqueseasignaaunobjeto,lavariabledeobjetodeclaradatieneelvalorespecialNothing,elcualindicaquenoserefierea
ningunainstanciaenparticulardeunobjeto.
PrecauciónLainstrucciónReDimactúacomounainstruccióndeclarativasilavariablequedeclaranoexisteenelniveldemódulooniveldeprocedimiento.Simástardecreaotravariableconelmismonombre,inclusoconunalcancemayor,ReDimharáreferenciaalacreadamástardeynocausaránecesariamenteunerrordecompilación,inclusoaunqueOptionExplicitestéenefecto.Paraevitarestosconflictos,ReDimnosedebeutilizarcomounainstruccióndeclarativa,sinosóloparacambiareltamañodelasmatrices.
NotaParacambiareltamañodeunamatrizcontenidaenunaVariant,debedeclararexplícitamentelavariableVariantantesdeintentarcambiareltamañodesumatriz.
Rem(Instrucción)
Seusaparaincluirnotasaclaratoriasenunprograma.
Sintaxis
Remcomentario
Tambiénpuedeutilizarlasiguientesintaxis:
'comentario
Elargumentoopcionalcomentarioeseltextodecualquiercomentarioquedeseaincluir.DespuésdelapalabraclaveRemserequiereunespaciodelantedecomentario.
Comentarios
Siusanúmerosdelíneaoetiquetasdelínea,esposiblederivardeunainstrucciónGoTooGoSubaunalíneaquecontengalainstrucciónRem.LaejecucióncontinúaconlaprimerainstrucciónejecutablequesiguealainstrucciónRem.SilapalabraclaveRemsigueaotrasinstruccionesenunalínea,sedebeseparardelasinstruccionesconunsignodedospuntos(:).
Puedeusarunacomillasimpleounapóstrofo(')envezdelapalabraclaveRem.Cuandoutiliceunapóstrofe,nosenecesitaelsignodedospuntosdespuésdeotrasinstrucciones.
Reset(Instrucción)
CierratodoslosarchivosdediscoabiertosmediantelainstrucciónOpen.
Sintaxis
Reset
Comentarios
LainstrucciónResetcierratodoslosarchivosactivosabiertosconlainstrucciónOpenyescribeeneldiscoelcontenidodetodoslosbúferesdelosarchivos.
Resume(Instrucción)
Continúalaejecucióncuandoterminaunarutinadegestióndeerrores"controldeerrores"
Sintaxis
Resume[0]
ResumeNext
Resumelínea
LasintaxisdelainstrucciónResumepuedetenercualquieradelosformatossiguientes:
Instrucción DescripciónResume Sielerrorsehaproducidoenelprocedimientoquecontiene
elcontroladordeerrores,laejecucióncontinúaenlainstrucciónquelocausó.Sielerrorsehaproducidoenunprocedimientollamado,laejecucióncontinúaenlainstruccióncontroldeerroresdesdelacualsellamóalprocedimientoquecontienelarutinadegestióndeerrores.
ResumeNext Sielerrorsehaproducidoenelmismoprocedimientoquecontieneelcontroladordeerrores,laejecucióncontinúaconlainstrucciónquesigueinmediatamentealaquecausóelerror.Sielerrorsehaproducidoenunprocedimientollamado,laejecucióncontinúaenlainstruccióninmediatamenteposterioralainstruccióndesdelacualsellamóalprocedimientoquecontienelarutinadegestióndeerrores"controldeerrores"(olainstrucciónOnErrorResumeNext)
Resumelínea Laejecucióncontinúaenlalíneaespecificadaenelargumentoobligatoriolínea.Elargumentolíneaesunaetiquetadelíneaounnúmerodelíneaydebeestarenelmismoprocedimientoqueelcontroladordeerrores.
Comentarios
SiutilizaunainstrucciónResumeenotrositioquenoseaunarutinadecontroldeerrores,ocurreunerror.
RmDir(Instrucción)
Eliminaundirectorioocarpetaexistente.
Sintaxis
RmDirruta
Elargumentorequeridorutaesunaexpresióndecadenaqueidentificaeldirectorioocarpetaquesevaaeliminar.Puedeincluirlaunidaddedisco.Sinoseespecificaunaunidaddedisco,RmDireliminaeldirectorioocarpetadelaunidaddediscoactual.
Comentarios
SiseintentautilizarlainstrucciónRmDirenundirectorioocarpetaquecontienearchivos,seproduciráunerror.UselainstrucciónKillparaeliminartodoslosarchivosdeesedirectorioocarpetaantesdeintentareliminarel
directorioocarpeta.
RSet(Instrucción)
Alineaaladerechaunacadenadentrodeunavariabledecadena.
Sintaxis
RSetvarcadena=cadena
LasintaxisdelainstrucciónRSetconstadelassiguientespartes:
Parte Descripción
varcadena Requerido.Nombredeunavariabledecadena.cadena Requerido.Expresióndecadenaquesevaaalinearaladerechaen
varcadena.
Comentarios
Sivarcadenaesmáslargaquecadena,RSetreemplazacualquiercaráctersobrantealaizquierdadevarcadenaconespaciosenblanco,empezandodesdeelprincipio.
NotaRSetnosepuedeutilizarcontiposdefinidosporelusuario.
SaveSetting(Instrucción)
GuardaocreaunaentradaparaunaaplicaciónenelregistrodeconfiguracióndeWindows.O(enMacintosh)informaciónenelarchivodeinicializacióndelaaplicación.
Sintaxis
SaveSettingappname,section,key,setting
LasintaxisdelainstrucciónSaveSettingtienelossiguientesargumentosconnombre:
Parte Descripciónappname Obligatorio.Expresióndecadenaquecontieneelnombredela
aplicaciónoproyectoalqueseaplicaelvalor.EnMacintosh,ésteeselnombredelarchivodeinicializaciónenlacarpetaPreferenciasenlacarpetadelSistema.
section Obligatorio.Expresióndetipocadenaquecontieneelnombredelaseccióndondesevaaguardarlaclave.
key Obligatorio.Expresióndetipocadenaquecontieneelnombredelaclavequesevaaguardar.
setting Obligatorio.Expresiónquecontieneelvalorquesevaaestablecerenkey.
Comentarios
Seproduceunerrorsiporalgúnmotivonosepuedeguardarelvalordelaclave.
Seek(Instrucción)
EstablecelaposicióndelapróximaoperacióndelecturaoescrituraenunarchivoabiertomediantelainstrucciónOpen.
Sintaxis
Seek[#]númeroarchivo,posición
LasintaxisdelainstrucciónSeekconstalassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivoválido.posición Requerido.Unnúmeroentre1y2.147.483.647inclusive,
queindicalaposiciónenlaquesedebeejecutarlapróximaoperacióndelecturaoescritura.
Comentarios
LosnúmerosderegistroespecificadosenlasinstruccionesGetyPutanulanlaposicióndearchivoespecificadaporSeek.
SiseejecutaunaoperacióndeescrituradearchivodespuésdeunainstrucciónSeekmásalládelfindeunarchivo,seextiendeelarchivo.Siseintentaejecutar
unainstrucciónSeekenunaposiciónnegativaocero,seproduceunerror.
SelectCase(Instrucción)
Ejecutaunodevariosgruposdeinstrucciones,dependiendodelvalordeunaexpresión.
Sintaxis
SelectCaseexpresión_prueba[Caselista_expresion-n[instrucciones-n]]...[CaseElse[instrucciones_else]]
EndSelect
LasintaxisdelainstrucciónSelectCaseconstadelassiguientespartes:
Parte Descripciónexpresión_prueba Requerido.Cualquierexpresiónnuméricaoexpresiónde
cadena.lista_expresión-n RequeridosiaparecelapalabraclaveCase.Lista
delimitadaporcomasdeunaomásdelasformassiguientes:expresión,expresiónToexpresión,Isexpresiónoperador_de_comparación.Lapalabraclaveespecificaunintervalodevalores.SiseutilizalapalabraclaveTo,elvalormenordebeaparecerantesdeTo.UtilicelapalabraclaveIsconoperadoresdecomparación(exceptoIsyLike)paraespecificarunintervalodevalores.Sinoseescribe,lapalabraclaveIsseinsertaráautomáticamente.
instrucciones-n Opcional.Unaomásinstruccionesejecutadassiexpresión_pruebacoincideconcualquierpartedelista_expresión-n.
instrucciones_else
Opcional.Unaomásinstruccionesqueseejecutensiexpresión_pruebanocoincideconnadadelacláusulaCase.
Comentarios
Siexpresión_pruebacoincideconcualquierlista_expresiónasociadaconunacláusulaCase,lasinstruccionesquesiguenaesacláusulaCaseseejecutanhastalasiguientecláusulaCaseo,paralaúltimacláusula,hastalainstrucciónEndSelect.ElcontrolpasadespuésalainstrucciónquesigueaEndSelect.Si
expresión_pruebacoincideconunaexpresióndelista_expresiónenmásdeunacláusulaCase,sóloseejecutanlasinstruccionesquesiguenalaprimeracoincidencia.
LacláusulaCaseElseseutilizaparaindicarlasinstruccionesquesevanaejecutarsinoseencuentrancoincidenciasentreexpresión_pruebayunalista_expresiónencualquieradelasotrasseleccionesdeCase.Aunquenoesnecesario,esbuenaideatenerunainstrucciónCaseElseenelbloqueSelectCaseparacontrolarvaloresimprevistosdeexpresión_prueba.CuandonohayunainstrucciónCaseElseyningunaexpresióndelalistaenlascláusulasCasecoincideconlaexpresióndeprueba,laejecucióncontinúaenlainstrucciónquesigueaEndSelect.
SepuedenutilizarexpresionesmúltiplesointervalosencadacláusulaCase.Porejemplo,lalíneasiguienteesválida:
Case1To4,7To9,11,13,Is>MaxNumber
NotaEloperadordecomparaciónIsnoeslomismoquelapalabraclaveIsutilizadaenlainstrucciónSelectCase.
Tambiénpuedeespecificarintervalosyexpresionesmúltiplesparacadenasdecaracteres.Enelsiguienteejemplo,Casecoincideconlascadenasquesonexactamenteigualesatodo,cadenasqueestánentrenuecesysopaenordenalfabéticoyelvaloractualdeElemPrueba:
Case"igualesatodo","nueces"To"sopa",ElemPrueba
LasinstruccionesSelectCasesepuedenanidar.CadainstrucciónSelectCasedebetenersucorrespondienteinstrucciónEndSelect.
SendKeys(Instrucción)
Envíaunaomáspulsacionesdeteclasalaventanaactiva,comosisehubieranpresionadodesdeelteclado.
Sintaxis
SendKeysstring[,wait]
LasintaxisdelainstrucciónSendKeysconstadeestosargumentosconnombre:
Parte Descripciónstring Requerido.Expresióndecadenaqueespecificalaspulsacionesde
teclasquesevanaenviar.wait Opcional.ValorBooleanqueindicaelmododeespera.Siestevalor
esFalse(predeterminado),sedevuelveelcontrolalprocedimientoinmediatamentedespuésdeenviarlaspulsaciones.SiesTrue,seprocesanlaspulsacionesantesdedevolverelcontrolalprocedimiento.
Comentarios
Cadateclaestárepresentadaporunoomáscaracteres.Paraespecificarunúnicocarácterdelteclado,seutilizaelcarácterpropiamentedicho.Porejemplo,pararepresentarlaletraA,utilice"A"comostring.Sisedesearepresentarmásdeuncarácter,agreguecadacarácteradicionalalqueloprecede.PararepresentarlasletrasA,ByC,utilice"ABC"parastring.
Elsignomás(+),elsímbolodeintercalación(^),elsímbolodeporcentaje(%),latilde(~)ylosparéntesis()tienensignificadosespecialesparaSendKeys.Paraespecificarunodeestoscaracteres,debeincluirloentrellaves.Porejemplo,paraespecificarelsignomás,utilice{+}.Loscorchetes([])notienenunsignificadoespecialparaSendKeys,perodebeescribirlosentrellavesporque,enotrasaplicaciones,lotienenyesopuedetenerimportanciacuandoseproduceunintercambiodinámicodedatos(DDE).Paraespecificarllaves,utilice{{}y{}}.
Paraespecificarcaracteresquenosemuestranalpresionarunatecla(comoporejemploEntraroTab)yteclasquerepresentanacciones,enlugardecaracteres,seutilizanlossiguientescódigos:
Tecla CódigoRetroceso {BACKSPACE},{BS}o{BKSP}
{BREAK}
PausaBloqMayús {CAPSLOCK}
Supr {DELETE}o{DEL}Flechaabajo {DOWN}
Fin {END}
Entrar {ENTER}o~Esc {ESC}
Ayuda {HELP}
Inicio {HOME}
Insert {INSERT}o{INS}Flechaizquierda {LEFT}
BloqNum {NUMLOCK}
RePág {PGDN}
AvPág {PGUP}
ImprPant {PRTSC}
Flechaderecha {RIGHT}
BloqDespl {SCROLLLOCK}
Tab {TAB}
Flechaarriba {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
ParaespecificarteclasconcualquiercombinacióndelasteclasMAYÚS,CTRLyALT,introduzcadelantedelcódigodelateclaunoomásdelossiguientescódigos:
Tecla CódigoMayús +
Ctril(Control) ^
Alt %
ParaespecificarquesedebemantenerpresionadaunacombinacióncualquieradelasteclasMayús,CtrlyAltmientrassepresionanotrasteclas,pongaentreparéntesiselcódigorelativoaesasteclas.Porejemplo,paraespecificarquesedebemantenerpresionadaMAYÚSmientrassepresionanlasteclasEyC,utilice"+(EC)".ParaespecificarquesedebemantenerpresionadaMayúsmientrassepresionalateclaEyqueluegosedebepresionarC,sinpresionarMayús,utilice"+EC".
Paraespecificarpulsacionesrepetidasdeteclas,utiliceelformato{teclanúmero}.Debedejarunespacioenblancoentreteclaynúmero.Porejemplo,{LEFT42}significaquesedebepresionarlateclaFlechaIzquierda42veces;{h10}significaquesedebepresionarlateclah10veces.
NotaNopuedeutilizarSendKeysparaenviarpulsacionesdeteclasaaplicacionesquenoesténdiseñadasparafuncionarconMicrosoftWindows.oMacintoshSendKeyspuedeenviartambiénlapulsacióndelateclaImprPant(PRTSC)acualquieraplicación.
Set(Instrucción)
Asignaunareferenciadeobjetoaunavariableopropiedad.
Sintaxis
Setvariable_objeto={[New]expresión_objeto|Nothing}
LasintaxisdelainstrucciónSetconstadelassiguientespartes:
Parte Descripciónvariable_objeto Requerido.Nombredelavariableodelapropiedad;sigue
lasconvencionesestándardenombresdevariables.New Opcional.Newseutilizanormalmenteduranteuna
declaraciónparapermitirlacreaciónimplícitadeunobjeto.CuandoutilizaNewconlainstrucciónSetsecreaunanuevainstanciadelaclase.Sivariable_objetoconteníaunareferenciaaunobjeto,estareferenciaseliberacuandoseasignaelnuevoobjeto.LapalabraclaveNewnosepuedeutilizarparacrearnuevasinstanciasdecualquiertipodedatosintrínseconiparacrearobjetosdependientes.
expresión_objeto Requerido.Expresiónqueconsisteenelnombredeunobjeto,otravariabledeclaradadelmismotipodeobjetos,ounafunciónométodoquedevuelveunobjetodelmismotipodeobjeto.
Nothing Opcional.Interrumpeunaasociacióndevariable_objetoconcualquierobjetoespecífico.AlasignarNothingavariable_objetoseliberantodoslosrecursosdelsistemaydememoriaasociadosconelobjetoalquesehizoreferenciapreviamentecuandoningunaotravariableserefiereaél.
Comentarios
Paraserválido,variable_objetodebeseruntipodeobjetocoherenteconelobjetoqueselehaasignado.
LasinstruccionesDim,Private,Public,ReDimyStaticsólodeclaranunavariablequeserefiereaunobjeto.NoseharáreferenciaaningúnobjetorealhastaqueuselainstrucciónSetparaasignarunobjetoespecífico.
ElsiguienteejemploilustraelusodeDimparadeclararunamatrizdeltipoForm1.ActualmentenoexisteningunainstanciadeForm1.SetasignareferenciasanuevasinstanciasdeForm1alavariablemisFormulariosSecundarios.EstecódigosepodríautilizarparacrearformulariossecundariosenunaaplicaciónMDI.
DimmisFormulariosSecundarios(1to4)AsForm1
SetmisFormulariosSecundarios(1)=NewForm1
SetmisFormulariosSecundarios(2)=NewForm1
SetmisFormulariosSecundarios(3)=NewForm1
SetmisFormulariosSecundarios(4)=NwqForm1
Generalmente,cuandousaSetparaasignarunareferenciadeobjetoaunavariable,nosecreaningunacopiadelobjetoparaesavariable.Ensulugarsecreaunareferenciaalobjeto.Másdeunavariabledeobjetosepuedereferiralmismoobjeto.Puestoqueestasvariablessonreferenciasalobjeto(nocopiasdeél),cualquiercambioenelobjetosereflejaentodaslasvariablesqueserefierenaél.Noobstante,cuandoutilizalapalabraclaveNewenlainstrucciónSet,enrealidadestácreandounainstanciadelobjeto.
SetAttr(Instrucción)
Establecelosatributosdeunarchivo.
Sintaxis
SetAttrpathname,attributes
LasintaxisdelainstrucciónSetAttrconstadelossiguientesargumentosconnombres:
Parte Descripciónpathname Requerido.Expresióndecadenaqueespecificaunnombre
dearchivo.Puedeincluireldirectorioocarpetaylaunidaddedisco.
attributes Requerido.Constanteoexpresiónnumérica,cuyasumaespecificalosatributosdearchivo.
Valores
Elargumentoyvaloresdeattributesson:
Constante Valor DescripciónvbNormal 0 Normal(predeterminado)vbReadOnly 1 SólolecturavbHidden 2 OcultovbSystem 4 Archivodesistema.No
disponibleenMacintosh.vbArchive 32 Elarchivohasido
modificadodespuésdehaberseefectuadolaúltimacopiadeseguridad.
vbAlias 64 Elnombreespecificadoesunalias.DisponiblesóloenMacintosh.
NotaVisualBasicparaaplicacionesespecificaestasconstantes.Comoresultadodeello,esosnombressepuedenutilizarencualquierlugardelcódigosustituyendoalvalorcorrespondiente.
Comentarios
Sisetratadeestablecerlosatributosdeunarchivoabierto,seproduciráunerrorentiempodeejecución.
Static(Instrucción)
Seusaenelniveldeprocedimientoparadeclararvariablesyasignarlesespaciodealmacenamiento.LasvariablesdeclaradasconlainstrucciónStaticconservansuvalormientraselcódigoseestáejecutando.
Sintaxis
Staticnombre_variable[([subíndices])][As[New]tipo][,nombre_variable[([subíndices])][As[New]tipo]]...
LasintaxisdelainstrucciónStaticconstadeestaspartes:
Parte Descripciónnombre_variable
Requerido.Nombredelavariable;siguelasconvencionesestándardenombresdevariable.
subíndices Opcional.Dimensionesdeunavariabledematriz;sepuedendeclararhasta60dimensionesmúltiples.Elargumentosubíndicesusalasintaxissiguiente:
[inferiorTo]superior[,[inferiorTo]superior]...
Cuandonosedeclaraexplícitamenteeninferior,ellímiteinferiordeunamatrizsecontrolamediantelainstrucciónOptionBase.EstelímiteinferiorescerosinohayningunainstrucciónOptionBase.
New Opcional.Palabraclavequepermitelacreaciónimplícitadeunobjeto.SiutilizaNewcuandodeclaralavariabledeobjeto,secreaunanuevainstanciadelobjetocomoprimerareferencia,deformaquenotienequeutilizarlainstrucciónSetparaasignarlareferenciadelobjeto.LapalabraclaveNewnosepuedeutilizarparadeclararvariablesdecualquiertipodedatosintrínseconiparadeclararinstanciasdeobjetosdependientes.
tipo Opcional.Tipodedatosdelavariable;puedeserByte,Boolean,
Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String,(paracadenasdelongitudvariable),String*length(paracadenasdelongitudfija),Object,Variant,untipodefinidoporelusuario,ountipodeobjeto.UseunacláusulaAstipodistintoparacadavariablequedefina.
Comentarios
Unavezqueelcódigodelmóduloseestáejecutando,lasvariablesdeclaradasconlainstrucciónStaticconservansuvalorhastaquesereinicieorestablezcaelmódulo.Enlosmódulosdeclase,lasvariablesdeclaradasconlainstrucciónStaticconservansuvalorencadainstanciadeclasehastaquesedestruyelainstancia.Enmódulosdeformulario,lasvariablesestáticasconservansuvalorhastaquesecierraelformulario.UselainstrucciónStaticenprocedimientosnoestáticosparadeclararexplícitamentevariablesquesonvisiblessólodentrodeunprocedimiento,perocuyavidaeslamismaqueladelmóduloenlaquesedefinióelprocedimiento.
UtiliceunainstrucciónStaticdentrodeunprocedimientoparadeclarareltipodedatosdeunavariablequeconservasuvalorentrellamadasaprocedimiento.Porejemplo,lainstrucciónsiguientedeclaraunamatrizdeenterosdetamañofijo:
StaticNúmeroDeEmpleados(200)AsInteger
Lasiguientelíneadeclaraunavariableparaunanuevainstanciadeunahojadecálculo:
StaticXAsNewWorksheet
SilapalabraclaveNewnoseutilizaaldeclararunavariabledeobjeto,lavariablequehacereferenciaaunobjetodebeasignarseaunobjetoexistentemediantelainstrucciónSetantesdepoderutilizarla.Antesdequeseleasigneunobjeto,lavariabledeobjetodeclaradatieneelvalorespecialNothing,queindicaquenohacereferenciaaningunainstanciaenparticulardeunobjeto.CuandoutilizalapalabraclaveNewenladeclaración,secreaunainstanciadelobjetoenlaprimerareferenciadelmismo.
SinoespecificauntipodedatosountipodeobjetoynoexisteunainstrucciónDeftipoenelmódulo,lavariableesVariantdemanerapredeterminada.
NotaLainstrucciónStaticylapalabraclaveStaticsonsimilares,peroseutilizanparaconseguirefectosdiferentes.SideclaraunprocedimientoconlapalabraclaveStatic(comoenStaticSubContarVentas()),elespaciodealmacenamientocorrespondienteatodaslasvariableslocalesdentrodelprocedimientoseasignaunaúnicavezyelvalordelasvariablesseconservadurantetodoeltiempoqueseestéejecutandoelprograma.Paraprocedimientosnoestáticos,elespaciodealmacenamientoparalasvariablesseasignacadavezquesellamaalprocedimientoyseliberacuandosesaledelprocedimiento.LainstrucciónStaticseusaparadeclararvariablesespecíficasdentrodeprocedimientosnoestáticosparaconservarsuvalormientraselprogramaseestéejecutando.
Alinicializarlasvariables,unavariablenuméricaseinicializaa0,unacadenadelongitudvariableseinicializaaunacadenadelongitudcero("")yunacadenadelongitudfijaserellenaconceros.LasvariablesVariantseinicializanaEmpty.Cadaelementodeunavariabledeuntipodefinidoporelusuarioseinicializacomosifueraunavariabledistinta.
NotaCuandoutiliceinstruccionesStaticdentrodeunprocedimiento,colóquelasalprincipiodelprocedimientoconotrasinstruccionesdedeclaracióncomoDim.
Stop(Instrucción)
Suspendelaejecución.
Sintaxis
Stop
Comentarios
SepuedencolocarinstruccionesStopencualquierpartedelosprocedimientosparasuspenderlaejecución.ElusodelainstrucciónStopessimilaraestablecer
unpuntodeinterrupciónenelcódigo.
LainstrucciónStopsuspendelaejecución,peroadiferenciadeEndnocierraningúnarchivoniborravariables,amenosqueseaunarchivoejecutablecompilado(.exe).
Sub(Instrucción)
Declaraelnombre,losargumentos,yelcódigoquecomponenelcuerpodeunprocedimientoSub.
Sintaxis
[Private|Public|Friend][Static]Subnombre[(lista_argumentos)][instrucciones][ExitSub][instrucciones]
EndSub
LasintaxisdelainstrucciónSubconstadelassiguientespartes:
Parte DescripciónPublic Opcional.IndicaqueelprocedimientoSubesaccesiblepara
todoslosdemásprocedimientosdetodoslosmódulos.SiseusaenunmóduloquecontieneunainstrucciónOptionPrivate,elprocedimientonoestádisponiblefueradelproyecto.
Private Opcional.IndicaqueelprocedimientoSubesaccesiblesóloparaotrosprocedimientosdelmóduloenelquesedeclara.
Friend Opcional.Seutilizasolamenteenunmódulodeclase.IndicaqueelprocedimientoSubesvisibleatravésdelproyecto,peronoporuncontroladordeunainstanciadeunobjeto.
Static Opcional.IndicaquelasvariableslocalesdelprocedimientoSubseconservanentredistintasllamadas.ElatributoStaticnoafectaalasvariablesquesedeclaranfueradeSub,inclusoaunqueseusenenelprocedimiento.
nombre Requerido.NombredelprocedimientoSub;siguelasconvencionesestándardenombresdevariable.
lista_argumentos
Opcional.ListadevariablesquerepresentanlosargumentosquesepasanalprocedimientoSubcuandoselellama.Lasdistintasvariablesseseparanmediantecomas.
instrucciones Opcional.CualquiergrupodeinstruccionesqueseejecutandentrodelprocedimientoSub.
Elargumentolista_argumentosconstadelassiguientespartesysintaxis:
[Optional][ByVal|ByRef][ParamArray]nombre_variable[()][Astipo][=valor_predeterminado]
Parte DescripciónOptional Opcional.Palabraclavequeindicaquenoserequiereningún
argumento.Siseusa,todoslosargumentossubsiguientesdelista_argumentostambiéndebenseropcionalesydeclararse
mediantelapalabraclaveOptional.OptionalnosepuedeutilizarparaningúnargumentosiseusaParamArray.
ByVal Opcional.Indicaqueelargumentosepasaporvalor.ByRef Opcional.Indicaqueelargumentosepasaporreferencia.
ByRefeselmodopredeterminadoenVisualBasic.ParamArray Opcional.Sóloseutilizacomoelúltimoargumentode
lista_argumentosparaindicarqueelargumentofinalesunamatrizOptionaldeelementostipoVariant.LapalabraclaveParamArraylepermiteproporcionarunnúmeroarbitrariodeargumentos.NosepuedeutilizarconByVal,ByRefuOptional.
nombre_variable
Requerido.Nombredelavariablequerepresentaelargumento;siguelasconvencionesestándardenombresdevariables.
tipo Opcional.Eltipodedatosdelargumentoquesepasaalprocedimiento;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidoactualmente),Date,String(solamentelongitudvariable),Object,Variant,ountipodeobjetoespecífico.SielparámetronoesOptional,sepuedeespecificartambiénuntipodefinidoporelusuario.
valor_predeterminado
Opcional.Cualquierconstanteoexpresióndeconstante.SóloesválidoparaparámetrosOptional.SieltipoesObject,unvalorpredeterminadoexplícitosólopuedeserNothing.
Comentarios
SinoseespecificaexplícitamentemediantePublic,PrivateoFriend,losprocedimientosSubsonpúblicosdemanerapredeterminada.SinoseusaStatic,elvalordelasvariableslocalesnosemantieneentredistintasllamadas.LapalabraclaveFriendsolamentesepuedeusarenmódulosdeclase.Sinembargo,losprocedimientosencualquiermódulodeunproyectopuedenaccederalosprocedimientosFriend.UnprocedimientoFriendnoapareceenlabibliotecadetipodesuclaseprimaria,nisepuedeenlazarposteriormente.
PrecauciónLosprocedimientosSubpuedenserrecursivos;esdecir,sepuedenllamarasímismospararealizarunatareadeterminada.Sinembargo,estopuedellevaraldesbordamientodelapila.LapalabraclaveStaticgeneralmentenoseutilizaconprocedimientosrecursivosSub.
Todocódigoejecutabledebeestarenprocedimientos.NopuededefinirunprocedimientoSubdentrodeotroprocedimientoSub,FunctionoProperty.
LaspalabrasclaveExitSubcausanlainmediatasalidadeunprocedimientoSub.LaejecucióndelprogramacontinúaconlainstrucciónquesiguealainstrucciónquellamóelprocedimientoSub.CualquiernúmerodeinstruccionesExitSubpuedeaparecerencualquierlugardeunprocedimientoSub.
AligualqueunprocedimientoFunction,unprocedimientoSubesunprocedimientodistintoquetomaargumentos,llevaacabounaseriedeinstruccionesycambiaelvalordesusargumentos.Sinembargo,adiferenciadeunprocedimientoFunction,elcualdevuelveunvalor,unprocedimientoSubnosepuedeutilizarenunaexpresión.
ParallamaraunprocedimientoSub,useelnombredelprocedimientoseguidodelalistadeargumentos.ConsultelainstrucciónCallparaobtenerinformaciónespecíficaacercadecómollamaralosprocedimientosSub.
LasvariablesusadasenprocedimientosSubsedividenendoscategorías:lasqueestánexplícitamentedeclaradasdentrodelprocedimientoylasquenoloestán.Lasvariablesdeclaradasexplícitamenteenunprocedimiento(medianteDimounequivalente)siempresonlocalesdelprocedimiento.Otrasvariablesusadasperonodeclaradasexplícitamenteenunprocedimientotambiénsonlocales,amenosquesedeclarenexplícitamenteenalgúnnivelsuperiorfueradelprocedimiento.
PrecauciónUnprocedimientopuedeusarunavariablequenoestédeclaradaexplícitamenteenelprocedimiento,peropuedeocurrirunconflictodenombressicualquiercosaquehadefinidoenelniveldemódulotieneelmismonombre.Sielprocedimientoserefiereaunavariablenodeclaradaquetieneelmismonombrequeotroprocedimiento,constanteovariable,sesuponequeelprocedimientoseestárefiriendoalnombredeeseniveldemódulo.Paraevitarestetipodeconflictos,declarelasvariablesexplícitamente.Puedeusaruna
instrucciónOptionExplicitparaforzarladeclaraciónexplícitadevariables.
NotaNosepuedeusarGoSub,GoTooReturnparaobteneraccesoosalirdeunprocedimientoSub.
Time(Instrucción)
Establecelahoraactualdelsistema.
Sintaxis
Time=hora
Elargumentohoraescualquierexpresiónnumérica,expresióndecadenaocualquiercombinaciónquepuedarepresentarunahora.
Comentarios
Sihoraesunacadena,Timeintentaconvertirlaenunahorausandolosseparadoresdehoraqueseespecificaronparasusistema.Sinosepuedeconvertirenunahoraválida,seproduciráunerror.
Type(Instrucción)
Seusaenelniveldemóduloparadefiniruntipodedatosdefinidoporelusuarioquecontieneunoomáselementos.
Sintaxis
[Private|Public]Typenombre_variablenombre_elemento[([subíndices])]Astipo[nombre_elemento[([subíndices])]Astipo]...
EndType
LasintaxisdelainstrucciónTypeconstadelassiguientespartes:
Parte DescripciónPublic Opcional.Seusaparadeclarartiposdefinidosporelusuario
queestándisponiblesparatodoslosprocedimientosentodoslosmódulosdetodoslosproyectos.
Private Opcional.Seusaparadeclarartiposdefinidosporelusuarioquesóloestándisponiblesdentrodelmódulodondesehaceladeclaración.
nombre_variable
Requerido.Nombredeltipodefinidoporelusuario;siguelasconvencionesestándardenombresdevariable.
nombre_elemento
Requerido.Nombredeunelementodeltipodefinidoporelusuario.Losnombresdeelementostambiénsiguenlasconvencionesestándardenombres,exceptoenquesepuedenutilizarpalabrasclave.
subíndices Cuandonosedeclaraexplícitamenteeninferior,ellímiteinferiordeunamatrizsecontrolamediantelainstrucciónOptionBase.Ellímiteinferiorescerosinohayninguna
instrucciónOptionBase.tipo Requerido.Tipodedatosdelelemento;puedeserByte,
Boolean,Integer,Long,Currency,Single,Double,Decimal(noadmitidaactualmente),Date,String(paracadenasdelongitudvariable),String*length(paracadenasdelongitudfija),Object,Variant,otrotipodefinidoporelusuarioountipodeobjeto.
Comentarios
LainstrucciónTypesólopuedeutilizarseenelniveldemódulo.UnavezquehadeclaradountipodefinidoporelusuarioconlainstrucciónType,puededeclararunavariabledeesetipoencualquierlugardentrodelalcancedeladeclaración.UseDim,Private,Public,ReDimoStaticparadeclararunavariabledeuntipodefinidoporelusuario.
Enlosmódulosestándarymódulosdeclase,lostiposdefinidosporelusuariosonpúblicosdemanerapredeterminada.EstavisibilidadsepuedecambiarmediantelapalabraclavePrivate.
NúmerosdelíneayetiquetasdelíneanoestánpermitidosenbloquesType...EndType.
Lostiposdefinidosporelusuarioseutilizanamenudoconregistrosdedatos,loscualesconsistenfrecuentementeenunaseriedeelementosrelacionadosdediferentestiposdedatos.
Enesteejemplosemuestraelusodematricesdetamañofijoenuntipodefinidoporelusuario:
TypeDatosRegión
CógigoCiudad(1To100)AsInteger'Declaraunamatrizestática.
CondadoAsString*30
EndType
DimWashington(1To100)AsDatosRegión
Enelejemploanterior,DatosRegiónincluyelamatrizestáticaCódigoCiudadyelregistroWashingtontienelamismaestructuraqueDatosRegión.
Cuandodeclaraunamatrizdetamañofijodentrodeuntipodefinidoporelusuario,susdimensionesdebendeclararseconliteralesnuméricosoconstantesenlugardevariables.
While...Wend(Instrucción)
EjecutaunaseriedeinstruccionesmientrasunacondicióndadaseaTrue.
Sintaxis
Whilecondición[intrucciones]
Wend
LasintaxisdelainstrucciónWhile...Wendconstadelassiguientespartes:
Parte Descripcióncondición Requerido.Expresiónnuméricaoexpresióndecadenacuyo
valoresTrueoFalse.SicondiciónesNull,condiciónseconsideraFalse.
instrucciones Opcional.UnaomásinstruccionesqueseejecutanmientraslacondiciónesTrue.
Comentarios
SicondiciónesTrue,todaslasinstruccionesseejecutanhastaqueseencuentralainstrucciónWend.Después,elcontrolvuelvealainstrucciónWhileysecompruebadenuevocondición.SicondiciónesaúnTrue,serepiteelproceso.SinoesTrue,laejecuciónsereanudaconlainstrucciónquesiguealainstrucciónWend.
LosbuclesWhile...Wendsepuedenanidaracualquiernivel.CadaWendcoincideconelWhilemásreciente.
SugerenciaLainstrucciónDo...Loopproporcionaunamaneramásflexibleyestructuradaderealizarlosbucles.
Width#
(Instrucción)
AsignaelanchodelíneadesalidaaunarchivoabiertomediantelainstrucciónOpen.
Sintaxis
Width#númeroarchivo,ancho
LasintaxisdelainstrucciónWidthconstalassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivo.ancho Requerido.Unaexpresiónnuméricaentre0y255inclusive,
queindicacuántoscaracteresaparecenenunalíneaantesdeempezarunanuevalínea.Sianchoesiguala0,nohayningúnlímiteparalalongituddelínea.Elvalorpredeterminadodeanchoes0.
With(Instrucción)
Ejecutaunaseriedeinstruccionessobreunúnicoobjetoosobreuntipodefinidoporelusuario.
Sintaxis
Withobjeto[instrucciones]
EndWith
LasintaxisdelainstrucciónWithconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Nombredeunobjetoodeuntipodefinidopor
elusuario.instrucciones Opcional.Unaomásinstruccionesquesevanaejecutar
sobreobjeto.
Comentarios
LainstrucciónWithpermiterealizarunaseriedeinstruccionessobreunobjetoespecificadosinvolveracalificarelnombredelobjeto.Porejemplo,paracambiarunnúmerodepropiedadesdiferentesenunúnicoobjeto,esmásconvenientecolocarlasinstruccionesdeasignacióndelaspropiedadesenlaestructuradecontrolWith,haciendoreferenciaalobjetounavez,enlugardehacerloconcadaasignacióndepropiedad.ElsiguienteejemploilustraelusodelainstrucciónWithparaasignarvaloresavariaspropiedadesdelmismoobjeto.
WithMyLabel
.Height=2000
.Width=2000
.Caption="Estaesmietiqueta"
EndWith
NotaUnavezquesehaentradoenunbloqueWithnoesposiblecambiarelobjeto.Portanto,nopuedeutilizarunaúnicainstrucciónWithparavariosobjetos.
SepuedenanidarinstruccionesWithcolocandounbucleWithdentrodeotro.Sinembargo,comolosmiembrosdelosbloquesexternosWithestánenmascaradosporlospropiosbloquesWith,deberáproporcionaruncualificadorcompletocomoreferenciaalobjetoenelbloqueWithparareferirseacualquierotroobjetofueradelbloqueWith.
NotaEngeneral,noesaconsejablequesaltehaciadentroohaciafueradebloquesWith.SiseejecutaninstruccionesenbloquesWith,sinqueseejecutenlasinstruccionesWithoEndWithpermaneceenmemoriaunavariable
temporalquecontieneunareferenciaalobjetohastaquesalgadelprocedimiento.
Write#(Instrucción)
Escribedatosenunarchivosecuencial.
Sintaxis
Write#númeroarchivo,[listasalida]
LasintaxisdelainstrucciónWriteconstalassiguientespartes:
Parte Descripciónnúmeroarchivo Requerido.Cualquiernúmerodearchivoválido.listasalida Opcional.Unaovariasexpresionesnuméricasoexpresiones
decadenadelimitadasporcomasquesedeseaescribirenunarchivo.
Comentarios
LosdatosqueseescribenconWrite#normalmenteseleendeunarchivoconInput#.
Siomitelistasalidaeincluyeunpuntoycomadespuésdenúmeroarchivo,seimprimeunalíneaenblancoenelarchivo.Sepuedensepararmúltiplesexpresionesconunespacio,unpuntoycoma(;)ounacoma.Unespaciotieneelmismoefectoqueunpuntoycoma.
CuandoseutilizaWrite#paraintroducirinformaciónenunarchivo,sesiguendistintasconvencionesuniversales,demodoquelosdatossiempresepuedenleereinterpretarcorrectamentemedianteInput#,independientementedelaconfiguraciónregional:
Losdatosnuméricossiempreseescribenutilizandolacoma(,)comoseparadordecimal.
ParadatosdetipoBooleanseimprime#TRUE#o#FALSE#.Laspalabrasclave#TRUE#o#FALSE#nosetraducen,independientementedelaconfiguraciónregionalenqueseestétrabajando.
LosdatosdetipoDateseescribenenelarchivousandoelformatodefechauniversal.Sielcomponentecorrespondientealafechaoalahorafaltaoesigualacero,sóloseescribeenelarchivolapartesuministrada.
SilosdatosdelistasalidasondetipoEmptynoseescribenadaenelarchivo.Sinembargo,enelcasodedatosNulllasalidaes#NULL#.
SieldatodelistasalidaNull,seescribe#NULL#enelarchivo.
ParadatosdeError,lasalidaapareceenelformato#ERRORcódigoerror#.LapalabraclaveErrornosetraduce,independientementedelaconfiguraciónregionalenqueestétrabajando.
AdiferenciadelainstrucciónPrint#,lainstrucciónWrite#insertapuntosycomaentreelementosycomillasalrededordecadenas,cuandoseescribenenelarchivo.Noesnecesariocolocardelimitadoresenlalista.Write#insertauncarácterdenuevalínea,queesunretornodecarroyunavancedelínea(Chr(13)+Chr(10)),despuésdequesehaescritoelúltimocarácterdelistasalidaenelarchivo.
NotaNodeberíaescribircadenasquecontenganmarcasdecomillas
incrustadas,porejemplo,"1,2""X"parautilizarlasconlainstrucciónInput#:Input#analizalacadenacomodoscadenascompletasyseparadas.
Add(Método)
AgregaunmiembroaunobjetoCollection.
Sintaxis
objeto.Additem,key,before,after
LasintaxisdelmétodoAddconstadelcalificadordeobjetoylosargumentosconnombresiguientes:
Parte Descripciónobjeto Requerido.Unaexpresióndeobjetoquedacomoresultadoun
objetoincluidoenlalistaSeaplicaa.item Requerido.Unaexpresióndecualquiertipoqueespecificael
miembroquesevaaagregaralacolección.key Opcional.Unaexpresióndecadenaúnicaqueespecificauna
cadenaclaveparautilizarlaenlugardeuníndiceposicionalalteneraccesoaunmiembrodelacolección.
before Opcional.Expresiónqueespecificaunaposiciónrelativaenlacolección.Elmiembroaagregarsecolocaráenlacolecciónantesdelmiembroidentificadoporelargumentoargumentobefore.Siesunaexpresiónnumérica,beforedebeserunnúmeroentre1yelvalordelapropiedadCountdelacolección.Siesunaexpresióndecadena,beforedebecorresponderalargumentokeyespecificadoalagregaralacolecciónelmiembroalquesehacereferencia.Esposibleespecificarposicionesconbeforeoconafter,peronoconambos.
after Opcional.Expresiónqueespecificaunaposiciónrelativaenlacolección.Elmiembroquesevaaagregarsecolocaráenlacoleccióndespuésdelmiembroidentificadoporelargumento
after.Siesnumérico,afterdebeserunnúmeroentre1yelvalordelapropiedadCountdelacolección.Siesunacadena,afterdebecorresponderalargumentokeyespecificadoalagregaralacolecciónelmiembroalquesehacereferencia.Esposibleespecificarposicionesconbeforeoconafter,peronoconambos.
Comentarios
Siemprequeelargumentobeforeoafterseaunaexpresióndecadenaonumérica,sedebereferiraunmiembroexistentedelacolección;delocontrarioocurriráunerror.
Tambiénocurreunerrorsiunakeyespecificadaduplicalakeydeunmiembroexistentedelacolección.
Add(Método)
Descripción
Agregaunparelemento,claveaunobjetoDictionary.
Sintaxis
objeto.Addclave,elemento
ElmétodoAddconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoDictionary.clave Requerido.Laclaveasociadaconelelementoquese
agrega.elemento Requerido.Elelementoasociadoconlaclavequeseagrega.
Comentarios
Seproduceunerrorsilaclaveyaexiste.
AddFolders(Método)
Descripción
AgregaunobjetoFoldernuevoaunacolecciónFolders.
Sintaxis
objeto.AddnombreDeCarpeta
ElmétodoAddconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunacolección
Folders.nombreDeCarpeta Requerido.ElnombredelobjetoFoldersqueseagrega.
Comentarios
OcurreunerrorsinombreDeCarpetayaexiste.
BuildPath(Método)
Descripción
Anexaunnombreaunarutaexistente.
Sintaxis
objeto.BuildPath(ruta,nombre)
LasintaxisdelmétodoBuildPathconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunobjeto
FileSystemObject.ruta Requerido.Rutaexistentealaqueseanexaelnombre.La
rutapuedeserabsolutaorelativaynonecesitaespecificarunacarpetaexistente.
nombre Requerido.Nombrequeseanexaalarutaexistente.
Comentarios
ElmétodoBuildPathintroduceunseparadorderutaadicionalentrelarutaexistenteyelnombresólosiesnecesario.
Clear(Método)
BorratodaslaspropiedadesestablecidasdelobjetoErr.
Sintaxis
objeto.Clear
ElobjetoessiempreelobjetoErr.
Comentarios
UseClearparaborrarexplícitamenteelobjetoErrdespuésdecontrolarunerror,porejemplo,cuandohaestablecidoeltratamientodiferidodeunerrorconOnErrorResumeNext.SellamaautomáticamentealmétodoCleardespuésdeejecutarcualquieradeestasinstrucciones:
CualquiertipodeinstrucciónResume
ExitSub,ExitFunction,ExitProperty
CualquierinstrucciónOnErrorNotaLaestructuraOnErrorResumeNextespreferibleaOnErrorGoToalcontrolarerroresgeneradosduranteelaccesoaotrosobjetos.ComprobarErrdespuésdecadainteracciónconunobjetoeliminalaambigüedadsobreaquéobjetosetieneaccesomediantecódigo.PuedesaberquéobjetohapuestoelerrorenErr.Number,asícomoquéobjetohageneradoelerror(elobjetoespecificadoenErr.Source).
Close(Método)
Descripción
CierraunarchivoTextStreamabierto.
Sintaxis
objeto.Close
ElobjetosiempreeselnombredeunobjetoTextStream.
Copy(Método)
Descripción
Copiaunacarpetaoarchivoespecificadodesdeunaubicaciónaotra.
Sintaxis
objeto.Copydestino[,sobrescribir]
LasintaxisdelmétodoCopyconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileoFolder.destino Requerido.Destinodondesecopiaelarchivoocarpeta.No
sepermitencaracterescomodín.sobrescribir Opcional.ElvalorBooleanqueesTrue(predeterminado)si
sevanasobrescribirarchivosocarpetasexistentes;Falsesinosevanasobrescribir.
Comentarios
LosresultadosdelmétodoCopyenunobjetoFileoFoldersonidénticosalasoperacionesqueserealizanutilizandoFileSystemObject.CopyFileo
FileSystemObject.CopyFolderdondeelarchivoocarpetaalqueobjetohacereferenciasepasacomounargumento.Debetenerencuenta,sinembargo,quelosmétodosalternativossoncapacesdecopiarmúltiplesarchivosocarpetas.
CopyFile(Método)
Descripción
Copiaunoomásarchivosdesdeunaubicaciónaotra.
Sintaxis
objeto.CopyFileorigen,destino[,sobrescribir]
LasintaxisdelmétodoCopyFileconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Elobjetosiempreeselnombredeunobjeto
FileSystemObject.origen Requerido.Especificacióndelarchivodecadenasde
caracteres,quepuedeincluircaracterescomodín,paraunoomásarchivosquesecopian.
destino Requerido.Eldestinodelacadenadecaracteresdondesevanacopiarelarchivooarchivosdesdeelorigen.Nosepermitenloscaracterescomodín.
sobrescribir Opcional.UnvalorBooleanqueindicasilosarchivosexistentessevanasobrescribir.SiesTrue,losarchivossesobrescriben;siesFalse,nosesobrescriben.Elvalor
predeterminadoesTrue.TengaencuentaqueelmétodoCopyFilefallarásieldestinotieneestablecidoelatributodesólolectura,independientementedelvalordesobrescribir.
Comentarios
Loscaracterescomodínsólosepuedenutilizarenelúltimocomponentedelarutadelargumentoorigen.Porejemplo,puedeutilizar:
FileSystemObject.CopyFile"c:\Misdocumentos\cartas\*.doc","c:\carpetatemp\"
Peronopuedeutilizar:
FileSystemObject.CopyFile"c:\Misdocumentos\*\R1???97.xls","c:\carpetatemp"
Sielorigencontienecaracterescomodínoeldestinofinalizaconunseparadorderuta(\),sesuponequedestinoesunacarpetaexistenteenlaquesecopiaránlosarchivoscoincidentes.Sino,sesuponequeeldestinoeselnombredeunarchivoquesevaacrear.Encualquiercaso,puedenocurrirtrescosascuandosecopiaunarchivoindividual.
Sieldestinonoexiste,elorigensecopia.Esteeselcasonormal.
Sieldestinoesunarchivoexistente,seproduceunerrorsisobrescribiresFalse.Sino,sehaceunintentodecopiarorigensobreelarchivoexistente.
Sieldestinoesundirectorio,seproduceunerror.
Tambiénseproduceunerrorsiunorigenqueutilizacaracterescomodínnocoincideconningúnarchivo.ElmétodoCopyFilesedetieneenelprimererrorqueencuentra.Nosehaceningúnintentodevolveratrásodeshacercualquiercambiorealizadoantesdequeseproduzcaunerror.
CopyFolder(Método)
Descripción
Copiarecursivamenteunacarpetadesdeunaubicaciónaotra.
Sintaxis
objeto.CopyFolderorigen,destino[,sobrescribir]
LasintaxisdelmétodoCopyFolderconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.origen Requerido.Especificacióndelacarpetadecadenasde
caracteres,quepuedeincluircaracterescomodín,paraunaomáscarpetasquesecopian.
destino Requerido.Eldestinodelacadenadecaracteresdondesevanacopiarlacarpetaosubcarpetasdesdeelorigen.Nosepermitenloscaracterescomodín.
sobrescribir Opcional.UnvalorBooleanqueindicasilascarpetasexistentessevanasobrescribir.SiesTrue,losarchivossesobrescriben;siesFalse,nosesobrescriben.ElvalorpredeterminadoesTrue.
Comentarios
Loscaracterescomodínsólosepuedenutilizarenelúltimocomponentedelarutadelargumentoorigen.Porejemplo,puedeutilizar:
FileSystemObject.CopyFolder"c:\Misdocumentos\cartas\*","c:\carpetatemp\"
Peronopuedeutilizar:
FileSystemObject.CopyFolder"c:\Misdocumentos\*\*","c:\carpetatemp\"
Sielorigencontienecaracterescomodínoeldestinofinalizaconunseparadorderuta(\),sesuponequedestinoesunacarpetaexistenteenlaquecopiarlascarpetasysubcarpetascoincidentes.Sino,sesuponequeeldestinoeselnombredeunacarpetaquesevaacrear.Encualquiercaso,puedenocurrircuatrocosascuandosecopiaunacarpetaindividual.
Sinoexisteeldestino,secopianlacarpetaorigenytodosucontenido.Esteeselcasonormal.
Sieldestinoesunarchivoexistente,seproduceunerror.
Sieldestinoesundirectorio,sehaceunintentodecopiarlacarpetaytodosucontenido.Siexisteyaeneldestinounarchivocontenidoenorigen,seproduceunerrorsisobrescribiresFalse.Sino,seintentarácopiarelarchivosobreelarchivoexistente.
Sieldestinoesundirectoriodesólolectura,seproduceunerrorsisehaceunintentodecopiarunarchivodesólolecturaexistenteenesedirectorioysobrescribiresFalse.
Tambiénseproduceunerrorsiunorigenqueutilizacaracterescomodínnocoincideconningunacarpeta.
ElmétodoCopyFoldersedetieneenelprimererrorqueencuentra.Nosehace
ningúnintentodevolveratrásodeshacercualquiercambiorealizadoantesdequeseproduzcaunerror.
CreateFolder(Método)
Descripción
Creaunacarpeta.
Sintaxis
objeto.CreateFolder(nombreDeLaCarpeta)
ElmétodoCreateFolderconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunobjeto
FileSystemObject.nombreDeLaCarpeta Requerido.Unaexpresióndecadenaqueidentificala
carpetaquesevaacrear.
Comentarios
Seproduceunerrorsiyaexistelacarpetaespecificada.
CreateTextFile(Método)
Descripción
CreaunnombredearchivoespecificadoydevuelveunobjetoTextStreamquesepuedeutilizarparaleerdesdeoescribiraunarchivo.
Sintaxis
objeto.CreateTextFile(nombreDeArchivo[,sobrescribir[,unicode]])
ElmétodoCreateTextFileconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunobjeto
FileSystemObjectoFolder.nombreDeArchivo Requerido.Unaexpresióndecadenaqueidentificaelarchivo
quesevaacrear.
sobrescribir Opcional.UnvalorBooleanqueindicasiunarchivoexistentesepuedesobrescribir.ElvaloresTruesielarchivosepuedesobrescribiryFalsesinosepuedesobrescribir.Siseomite,losarchivosexistentesnosesobrescriben.
unicode Opcional.UnvalorBooleanqueindicasielarchivosecreacomounarchivoUnicodeoASCII.ElvaloresTruesielarchivosecreacomounarchivoUnicodeyFalsesisecreacomounarchivoASCII.Siseomite,sesuponequeesunarchivoASCII.
Comentarios
ElcódigosiguientedemuestracómoutilizarelmétodoCreateTextFileparacrearyabrirunarchivodetexto:
SubCreateAfile
Setfs=CreateObject("Scripting.FileSystemObject")
Seta=fs.CreateTextFile("c:\archivoprueba.txt"
a.WriteLine("Estoesunaprueba.")
a.Close
EndSub
SielargumentosobrescribiresFalseonoseproporciona,paraunnombreDeArchivoyaexistente,seproduceunerror.
Delete(Método)
Descripción
Eliminaunarchivoocarpetaespecificada.
Sintaxis
objeto.Deleteforzar
LasintaxisdelmétodoDeleteconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileoFolder.forzar Opcional.ValorBooleanqueesTruesisevanaeliminarlos
archivosocarpetasconelatributodesólolecturaestablecidoyFalse(predeterminado)sinosevanaeliminar.
Comentarios
Seproduceunerrorsielarchivoolacarpetaespecificadosnoexisten.
LosresultadosdelmétodoDeleteenunobjetoFileoFoldersonidénticosalasoperacionesrealizadasutilizandoFileSystemObject.DeleteFileo
FileSystemObject.DeleteFolder.
ElmétodoDeletenodistingueentrelascarpetasquetienencontenidoylasqueno.Lacarpetaespecificadaseeliminaindependientementedesitieneonocontenido.
DeleteFile(Método)
Descripción
Eliminaunarchivoespecificado.
Sintaxis
objeto.DeleteFileespecArchivo[,forzar]
LasintaxisdelmétodoDeleteFileconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunFileSystemObject.especArchivo Requerido.Elnombredelarchivoquesevaaeliminar.El
argumentoespecArchivopuedecontenercaracterescomodínenelúltimocomponentedelaruta.
forzar Opcional.UnvalorBooleanqueesTruesisevanaeliminarlosarchivosconelatributodesólolecturaestablecidoyFalse(predeterminado)sinosevanaeliminar.
Comentarios
Seproduceunerrorsinoseencuentranarchivoscoincidentes.Elmétodo
DeleteFilesedetieneenelprimererrorqueencuentra.Noseintentavolveratrásodeshacercualquiercambioquesehicieraantesdequeseproduzcaunerror.
DeleteFolder(Método)
Descripción
Eliminaunacarpetaespecificadaysucontenido.
Sintaxis
objeto.DeleteFolderespecCarpeta[,forzar]
LasintaxisdelmétodoDeleteFolderconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunFileSystemObject.especCarpeta Requerido.Elnombredelacarpetaquesevaaeliminar.El
argumentoespecCarpetapuedecontenercaracterescomodínenelúltimocomponentedelaruta.
forzar Opcional.UnvalorBooleanqueesTruesisevanaeliminarlascarpetasconelatributodesólolecturaestablecidoyFalse(predeterminado)sinosevanaeliminar.
Comentarios
ElmétodoDeleteFoldernodistingueentrecarpetasquetienencontenidoylas
queno.Lacarpetaespecificadaseeliminaindependientementedesitieneonocontenido.
Sinoseencuentrancarpetascoincidentes,seproduceunerror.ElmétodoDeleteFoldersedetieneenelprimererrorqueencuentra.Nosehaceningúnintentodevolveratrásodeshacerningúncambioquesehicieraantesdequeseprodujeraunerror.
DriveExists(Método)
Descripción
DevuelveTruesiexistelaunidadespecificadayFalsesinoexiste.
Sintaxis
objeto.DriveExists(especUnidad)
LasintaxisdelmétodoDriveExistsconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.especUnidad Requerido.Unaletradeunidadounaespecificaciónderuta
completa.
Comentarios
Paraunidadesconmediosseparables,elmétodoDriveExistsdevuelveTrueinclusosinohaymediospresentes.UtilicelapropiedadIsReadydelobjetoDriveparadeterminarsiunaunidadestápreparada.
Exists(Método)
Descripción
DevuelveTruesiexisteunaclaveespecificadaenelobjetoDictionaryyFalsesinoexiste.
Sintaxis
objeto.Exists(clave)
LasintaxisdelmétodoExistsconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoDictionary.clave Requerido.Valordelaclavequesebuscaenelobjeto
Dictionary.
FileExists(Método)
Descripción
DevuelveTruesiexisteunarchivoespecificadoyFalsesinoexiste.
Sintaxis
objeto.FileExists(especArchivo)
LasintaxisdelmétodoFileExistsconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.especArchivo Requerido.Elnombredelarchivocuyaexistenciasevaa
determinar.Sedebeproporcionarunaespecificaciónderutacompleta(absolutaorelativa)sinoseesperaqueexistaelarchivoenlacarpetaactual.
FolderExists(Método)
Descripción
DevuelveTruesiexisteunacarpetaespecificadayFalsesinoexiste.
Sintaxis
objeto.FolderExists(especCarpeta)
LasintaxisdelmétodoFolderExistsconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.especCarpeta Requerido.Elnombredelacarpetacuyaexistenciasevaa
determinar.Sedebeproporcionarunaespecificaciónderutacompleta(absolutaorelativa)sinoseesperaqueexistalacarpetaenlacarpetaactual.
GetAbsolutePathName(Método)
Descripción
Devuelveunarutainequívocaycompletadesdeunaespecificaciónderutaproporcionada.
Sintaxis
objeto.GetAbsolutePathName(especRuta)
LasintaxisdelmétodoGetAbsolutePathNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeun
FileSystemObject.especRuta Requerido.Laespecificacióndelarutaquesevaa
cambiarporunarutacompletaeinequívoca.
Comentarios
Unarutaescompletaeinequívocasiproporcionaunareferenciacompletadelaraízdelaunidadespecificada.Unarutacompletasólopuedefinalizarconuncarácterseparadorderuta(\)siespecificalacarpetadelaraízdeunaunidad
asignada.
Suponiendoqueeldirectorioactualesc:\Misdocumentos\informes,latablasiguienteilustraelcomportamientodelmétodoGetAbsolutePathName.
especRuta Returnedruta"c:" "c:\Misdocumentos\informes""c:.." "c:\Misdocumentos""c:\\\" "c:\""c:*.*\mayo97" "c:\Misdocumentos\informes\*.*\mayo97""region1" "c:\Misdocumentos\informes\region1""c:\..\..\Misdocumentos"
"c:\Misdocumentos"
GetBaseName(Método)
Descripción
Devuelveunacadenaquecontieneelnombrebasedelúltimocomponentedelaruta,sinlaextensióndelarchivo.
Sintaxis
objeto.GetBaseName(ruta)
LasintaxisdelmétodoGetBaseNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.ruta Requerido.Laespecificacióndelarutaparaelcomponente
cuyonombrebasesevaadevolver.
Comentarios
ElmétodoGetBaseNamedevuelveunacadenadelongitudcero("")siningúncomponentecoincideconelargumentoruta.
NotaElmétodoGetBaseNamesólofuncionaenlacadenaderuta
proporcionada.Nointentaresolverlaruta,nicompruebasuexistencia.
GetDrive(Método)
Descripción
DevuelveunobjetoDrivequecorrespondealaunidaddeunarutaespecificada.
Sintaxis
objeto.GetDriveespecUnidad
LasintaxisdelmétodoGetDriveconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.especUnidad Requerido.ElargumentoespecUnidadpuedeserunaletrade
unidad(c),unaletradeunidadcondospuntosanexados(c:),unaletradeunidadcondospuntosyunseparadorderutasanexados(c:\),ocualquierespecificaciónderecursocompartidodered(\\equipo2\recursocompartido1).
Comentarios
Pararecursoscompartidosdered,sehaceunacomprobaciónparaasegurarqueexisteelrecursocompartido.
SeproduceunerrorsiespecUnidadnoseajustaaunodelosformulariosaceptadososinoexiste.
ParallamaralmétodoGetDriveenunacadenaderutanormal,utilicelasiguientesecuenciaparaconseguirunacadenaadecuadaqueutilizarenespecUnidad:
DriveSpec=GetDriveName(GetAbsolutePathName(Path))
GetDriveName(Método)
Descripción
Devuelveunacadenaquecontieneelnombredelaunidadparaunarutaespecificada.
Sintaxis
objeto.GetDriveName(ruta)
LasintaxisdelmétodoGetDriveNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.ruta Requerido.Laespecificacióndelarutaparaelcomponentecuyo
nombredeunidadsevaadevolver.
Comentarios
ElmétodoGetDriveNamedevuelveunacadenadelongitudcero("")silaunidadnosepuededeterminar.
NotaElmétodoGetDriveNamesólofuncionaenlacadenaderuta
proporcionada.Nointentaresolverlaruta,nicompruebasuexistencia.
GetExtensionName(Método)
Descripción
Devuelveunacadenaquecontieneelnombredelaextensióndelúltimocomponenteenunaruta.
Sintaxis
objeto.GetExtensionName(ruta)
LasintaxisdelmétodoGetExtensionNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.ruta Requerido.Laespecificacióndelarutaparaelcomponentecuyo
nombredeextensiónsevaadevolver.
Comentarios
Paraunidadesdered,seconsideraqueeldirectorioraíz(\)esuncomponente.
ElmétodoGetExtensionNamedevuelveunacadenadelongitudcero("")siningúncomponentecoincideconelargumentodelaruta.
GetFile(Método)
Descripción
DevuelveunobjetoFilequecorrespondealarchivoenunarutaespecificada.
Sintaxis
objeto.GetFile(especArchivo)
LasintaxisdelmétodoGetFileconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.especArchivo Requerido.ElargumentoespecArchivoeslaruta(absolutao
relativa)deunarchivoespecífico.
Comentarios
Seproduceunerrorsielarchivoespecificadonoexiste.
GetFileName(Método)
Descripción
Devuelveelúltimocomponentedelarutaespecificadaquenoespartedelaespecificacióndelaunidad.
Sintaxis
objeto.GetFileName(especRuta)
LasintaxisdelmétodoGetFileNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.especRuta Requerido.Laruta(absolutaorelativa)deunarchivo
específico.
Comentarios
ElmétodoGetFileNamedevuelveunacadenadelongitudcero("")siespecRutanoterminaconelcomponentenombrado.
NotaElmétodoGetFileNamesólofuncionaenlacadenadelaruta
proporcionada.Nointentaresolverlaruta,nicompruebasuexistencia.
GetFolder(Método)
Descripción
DevuelveunobjetoFolderquecorrespondealacarpetaenunarutaespecificada.
Sintaxis
objeto.GetFolder(especCarpeta)
LasintaxisdelmétodoGetFolderconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunFileSystemObject.especCarpeta Requerido.ElargumentoespecCarpetaeslaruta(absolutao
relativa)deunacarpetaespecífica.
Comentarios
Seproduceunerrorsilacarpetaespecificadanoexiste.
GetParentFolderName(Método)
Descripción
Devuelveunacadenaquecontieneelnombredelacarpetaprincipaldelúltimocomponenteenunarutaespecificada.
Sintaxis
objeto.GetParentFolderName(ruta)
LasintaxisdelmétodoGetParentFolderNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.ruta Requerido.Laespecificacióndelarutaparaelcomponentecuya
carpetaprincipalsevaadevolver.
Comentarios
ElmétodoGetParentFolderNamedevuelveunacadenadelongitudcero("")sinohaycarpetaprincipalparaelcomponenteespecificadoenelargumentoruta.
NotaElmétodoGetParentFolderNamesólofuncionaenlacadenaderuta
proporcionada.Nointentaresolverlaruta,nicompruebasuexistencia.
GetSpecialFolder(Método)
Descripción
Devuelvelacarpetaespecialespecificada.
Sintaxis
objeto.GetSpecialFolder(especCarpeta)
LasintaxisdelmétodoGetSpecialFolderconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunobjeto
FileSystemObject.especCarpeta Requerido.Elnombredelacarpetaespecialquesevaa
devolver.PuedesercualquieradelasconstantesquesemuestranenlasecciónValores.
Valores
ElargumentoespecCarpetapuedetenercualquieradelosvaloressiguientes:
Constante Valor Descripción
WindowsFolder 0 LacarpetaWindowscontienearchivosinstaladosporelsistemaoperativoWindows.
SystemFolder 1 LacarpetaSistemacontienebibliotecas,fuentesyunidadesdedispositivo.
TemporaryFolder 2 LacarpetaTempseutilizaparaalmacenararchivostemporales.SurutaseencuentraenlavariabledelentornoTMP.
GetTempName(Método)
Descripción
Devuelveunnombredecarpetaoarchivotemporalgeneradoaleatoriamentequeesútilpararealizaroperacionesquerequierenunarchivoocarpetatemporales.
Sintaxis
objeto.GetTempName
ElobjetoopcionalessiempreelnombredeunobjetoFileSystemObject.
Comentarios
ElmétodoGetTempNamenocreaunarchivo.SóloproporcionaunnombredearchivotemporalquesepuedeutilizarconelmétodoCreateTextFileparacrearunarchivo.
Item(Método)
DevuelveunmiembroespecíficodeunobjetoCollectionalindicarsuposiciónosuclave.
Sintaxis
objeto.Item(índice)
LasintaxisdelmétodoItemconstadelcalificadordeobjetoyelargumentosiguientes:
Parte Descripciónobjeto Requerido.Unaexpresióndeobjetoquedacomoresultadounobjeto
incluidoenlalistaSeaplicaa.índice Requerido.Unaexpresiónqueespecificalaposicióndeunmiembrode
lacolección.Siesunaexpresiónnumérica,índicedebeserunnúmeroentre1yelvalordelapropiedadCountdelacolección.Siesunaexpresióndecadena,índicedebecorresponderalvalorespecificadoenelargumentokeyalagregaralacolecciónelmiembroalquesehacereferencia.
Comentarios
Sielvalorindicadocomoíndicenocoincideconningúnmiembroexistentedelacolección,seproduciráunerror.
ElmétodoItemeselpredeterminadodelascolecciones.Portanto,lassiguienteslíneasdecódigosonequivalentes:
PrintMiColección(1)
PrintMiColección.Item(1)
Items(Método)
Descripción
DevuelveunamatrizquecontienetodosloselementosenunobjetoDictionary.
Sintaxis
objeto.Items
ElobjetoessiempreelnombredeunobjetoDictionary.
Comentarios
ElcódigosiguientedemuestralautilizacióndelmétodoItems.
Dima,d,i'Crearalgunasvariables
Setd=CreateObject("Scripting.Dictionary")
d.Add"a","Athens"'Agregaralgunasclavesyelementos
d.Add"b","Belgrade"
d.Add"c","Cairo"
a=d.Items'Obtenerloselementos
Fori=0Tod.Count-1'Iterarporcadaelementodelamatriz
Printa(i)'Imprimirelelemento
Next
...
Keys(Método)
Descripción
DevuelveunamatrizquecontienetodaslasclavesexistentesenunobjetoDictionary.
Sintaxis
objeto.Keys
ElobjetoessiempreelnombredeunobjetoDictionary.
Comentarios
ElcódigosiguientedemuestralautilizacióndelmétodoKeys:
Dima,d,i'Crearalgunasvariables
Setd=CreateObject("Scripting.Dictionary")
d.Add"a","Athens"'Agregaralgunasclavesyelementos
d.Add"b","Belgrade"
d.Add"c","Cairo"
a=d.keys'Conseguirlasclaves
Fori=0Tod.Count-1'Iterarporcadaelementodelamatriz
Printa(i)'Imprimirlaclave
Next
...
Move(Método)
Descripción
Mueveunarchivoocarpetaespecificadosdesdeunaubicaciónaotra.
Sintaxis
objeto.Movedestino
LasintaxisdelmétodoMoveconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileoFolder.destino Requerido.Eldestinodondesevaamoverelarchivoocarpeta.
Nosepermitenloscaracterescomodín.
Comentarios
LosresultadosdelmétodoMoveenunobjetoFileoFoldersonidénticosparalasoperacionesrealizadasutilizandoFileSystemObject.MoveFileoFileSystemObject.MoveFolder.Debetenerencuenta,sinembargo,quelosmétodosalternativossoncapacesdemovermúltiplesarchivosocarpetas.
MoveFile(Método)
Descripción
Mueveunoomásarchivosdesdeunaubicaciónaotra.
Sintaxis
objeto.MoveFileorigen,destino
LasintaxisdelmétodoMoveFileconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.origen Requerido.Larutadelarchivooarchivosquesevanamover.
Lacadenadelargumentoorigenpuedecontenercaracterescomodínsóloenelúltimocomponentedelaruta.
destino Requerido.Larutadondesevaamoverelarchivoolosarchivos.Elargumentodestinonopuedecontenercaracterescomodín.
Comentarios
Siorigencontienecomodínesodestinoterminaconunserparadorderuta(\),se
suponequedestinoespecificaunacarpetaexistentealaquesevanamoverlosarchivoscoincidentes.Sino,sesuponequedestinoeselnombredeunarchivodedestinoquesevaacrear.Encualquiercaso,puedenocurrirtrescosascuandosemueveunarchivoindividual:
Sidestinonoexiste,elarchivosemueve.Esteeselcasonormal.
Sidestinoesunarchivoexistente,seproduceunerror.
Sidestinoesundirectorio,seproduceunerror.
Tambiénseproduceunerrorsiunorigenqueutilizacaracterescomodínnocoincideconningúnarchivo.ElmétodoMoveFilesedetieneenelprimererrorqueseencuentra.Nosehaceningúnintentodevolveratrásodeshacercualquiercambiorealizadoantesdequeseproduzcaelerror.
ImportanteEstemétodopermitemoverarchivosentrevolúmenessólosiéstossoncompatiblesconelsistemaoperativo.
MoveFolder(Método)
Descripción
Mueveunaomáscarpetasdesdeunaubicaciónaotra.
Sintaxis
objeto.MoveFolderorigen,destino
LasintaxisdelmétodoMoveFolderconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileSystemObject.origen Requerido.Larutadelacarpetaocarpetasquesevanamover.
Lacadenadelargumentoorigenpuedecontenercaracterescomodínsóloenelúltimocomponentedelaruta.
destino Requerido.Larutadondesevanamoverlacarpetaocarpetas.Elargumentodestinonopuedecontenercaracterescomodín.
Comentarios
Siorigencontienecomodínesodestinofinalizaconunseparadorderuta(\),sesuponequedestinoespecificaunacarpetaexistentealaquesevanamoverlos
archivoscoincidentes.Sino,sesuponequedestinoeselnombredeunacarpetadedestinoquesevaacrear.Encualquiercaso,puedenocurrirtrescosascuandosemueveunacarpetaindividual:
Sidestinonoexiste,lacarpetasemueve.Esteeselcasonormal.
Sidestinoesunarchivoexistente,seproduceunerror.
Sidestinoesundirectorio,seproduceunerror.
Tambiénseproduceunerrorsiunorigenqueutilizacaracterescomodínnocoincideconningunacarpeta.ElmétodoMoveFoldersedetieneenelprimererrorqueseencuentra.Nosehaceningúnintentodevolveratrásodeshacercualquiercambiorealizadoantesdequeseproduzcaelerror.
ImportanteEstemétodopermitemovercarpetasentrevolumenessólosiéstossoncompatiblesconelsistemaoperativo.
OpenAsTextStream(Método)
Descripción
AbreunarchivoespecificadoydevuelveunobjetoTextStreamquesepuedeutilizarparaleerdesde,escribira,oanexaralarchivo.
Sintaxis
objeto.OpenAsTextStream([modoES,[formato]])
LasintaxisdelmétodoOpenAsTextStreamconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFile.modoES Opcional.Indicaelmododeentrada/salida.Puedeser
unadelastresconstantessiguientes:ForReading,ForWritingoForAppending.
formato Opcional.UnodelostresvaloresTristate(constantestriestado)queseutilizanparaindicarelformatodelarchivoabierto.Siseomite,elarchivoseabrecomoASCII.
Valores
ElargumentomodoESpuedetenercualquieradelosvaloressiguientes:
Constante Valor DescripciónForReading 1 Abrirunarchivocomosólolectura.Nose
puedeescribirenestearchivo.ForWriting 2 Abrirunarchivoparaescribir.Siexisteun
archivoconelmismonombre,sesobrescribeelcontenidoanterior.
ForAppending 8 Abrirunarchivoyescribiralfinaldelmismo.
Elargumentoformatopuedetenercualquieradelossiguientesvalores:
Constante Valor DescripciónTristateUseDefault –2 Abrirelarchivoutilizandoelvalor
predeterminadodelsistema.TristateTrue –1 AbrirelarchivocomoUnicode.TristateFalse 0 AbrirelarchivocomoASCII.
Comentarios
ElmétodoOpenAsTextStreamproporcionalamismafuncionalidadqueelmétodoOpenTextFiledelobjetoFileSystemObject.Además,elmétodoOpenAsTextStreamsepuedeutilizarparaescribirenunarchivo.
ElcódigosiguientedemuestralautilizacióndelmétodoOpenAsTextStreams:
SubTextStreamTest
ConstForReading=1,ForWriting=2,ForAppending=3
ConstTristateUseDefault=-2,TristateTrue=-1,
TristateFalse=0
Dimfs,f,ts,s
Setfs=CreateObject("Scripting.FileSystemObject")
fs.CreateTextFile"prueba1.txt"'Crearunarchivo
Setf=fs.GetFile("prueba1.txt")
Setts=f.OpenAsTextStream(ForWriting,TristateUseDefault
ts.Write"¡Holamundo!"
ts.Close
Setts=f.OpenAsTextStream(ForReading,TristateUseDefault
s=ts.ReadLine
MsgBoxs
ts.Close
EndSub
OpenTextFile(Método)
Descripción
AbreunarchivoespecificadoydevuelveunobjetoTextStreamquesepuedeutilizarparaleerdesdeoanexaralarchivo.
Sintaxis
objeto.OpenTextFile(nombreDeArchivo[,modoES[,crear[,formato]]])
ElmétodoOpenTextFileconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunobjeto
FileSystemObject.nombreDeArchivo Requerido.Unaexpresióndecadenaqueidentificael
archivoquesevaaabrir.
modoES Opcional.Indicaelmododeentrada/salida.PuedeserunadelasdosconstantesForReadingoForAppending.
crear Opcional.UnvalorBooleanqueindicasisepuedecrearunarchivonuevocuandoelnombreDeArchivoespecificadonoexiste.ElvaloresTruesisecreaunarchivonuevoyFalsesinosecrea.ElvalorpredeterminadoesFalse.
formato Opcional.UnodelostresvaloresTristate(constantestriestado)queseutilizanparaindicarelformatodelarchivoabierto.Siseomite,elarchivoseabrecomoASCII.
Valores
ElargumentomodoESpuedetenercualquieradelosvaloressiguientes:
Constante Valor DescripciónForReading 1 Abrirunarchivosóloparalectura.Nopuede
escribirenestearchivo.ForAppending 8 Abrirunarchivoyescribiralfinaldelarchivo.
Elargumentoformatopuedetenercualquieradelosvaloressiguientes:
Constante Valor DescripciónTristateUseDefault –2 Abrirelarchivoutilizandoelvalor
predeterminadodelsistema.TristateTrue –1 AbrirelarchivocomoUnicode.TristateFalse 0 AbrirelarchivocomoASCII.
Comentarios
ElcódigosiguientedemuestralautilizacióndelmétodoOpenTextFileparaabrirunarchivoparaanexartexto:
SubOpenTextFileTest
ConstForReading=1,ForWriting=2,ForAppending=3
Dimfs,f
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.OpenTextFile("c:\archivotexto.txt"
f.Write"¡Holamundo!"
f.Close
EndSub
Print(Método)
ImprimetextoenlaventanaInmediato.
Sintaxis
objeto.Print[listasalida]
LasintaxisdelmétodoPrintconstadelcalificadordeobjetoyelargumentosiguientes:
Parte Descripciónobjeto Opcional.Unaexpresióndeobjetoquedacomoresultadoun
objetoincluidoenlalistaSeaplicaa.listasalida Opcional.Expresiónolistadeexpresionesquesevanaimprimir.
Siseomite,seimprimiráunalíneaenblanco.
Elargumentolistasalidatienelasintaxisyloscomponentessiguientes:
{Spc(n)|Tab(n)}expresión,posicióncarácter
Parte DescripciónSpc(n) Opcional.Seutilizaparainsertarcaracteresdeespacioenla
salida,dondeneselnúmerodeespaciosquesevanainsertar.
Tab(n) Opcional.Seutilizaparasituarelpuntodeinserciónenunnúmerodecolumnaabsoluto,dondeneselnúmerodecolumna.UtiliceTabsinargumentosparasituarelpuntodeinserciónalprincipiodelasiguientezonadeimpresión.
expresión Opcional.Expresiónnuméricaoexpresióndecadenaquesevaaimprimir.
posicióncarácter Opcional.Especificaelpuntodeinsercióndelcaráctersiguiente.Utiliceunpuntoycoma(;)parasituarelpuntodeinsercióninmediatamenteacontinuacióndelúltimocaráctermostrado.UtiliceTab(n)parasituarelpuntodeinserciónenunnúmerodecolumnaabsoluto,oTabsinargumentosparasituarloalprincipiodelasiguientezonadeimpresión.Siseomiteposicióncarácter,elcaráctersiguienteseimprimiráenlalíneasiguiente.
Comentarios
Lasexpresionesmúltiplespuedensepararseconunespaciooconunpuntoycoma.
TodoslosdatosimpresosenelpanelInmediatotienenelformatoadecuadosegúnelseparadordecimalcorrespondientealaconfiguraciónregionalestablecidaensusistema.Laspalabrasclavesemuestranenelidiomacorrespondientealaaplicaciónhost.
ParalosdatosdetipoBooleanseimprimeVerdaderooFalso.LaspalabrasclaveTrueyFalsesetraducencomocorrespondaalaconfiguraciónregionalespecificadaenlaaplicaciónhost.
LosdatosdetipoDateseescribenconelformatodefechacortaestándarquereconoceelsistema.Cuandoelcomponentedefechaodehorafaltaosescero,sóloseescribiráeldatoqueseproporcione.
NoseescribiránadasilosdatosdelistasalidasonEmpty.Sinembargo,silistasalidaesNull,enlasalidaseindicaráNulo.Denuevo,lapalabraclaveNullsetraduceenlasalidacomocorresponda.
Paralosdatosdeerror,lasalidaesErrorcódigoError.LapalabraclaveErrorsetraduceenlasalidacomocorresponda.
Esnecesarioobjetosielmétodoseusafueradeunmóduloquetengaunespaciodepresentaciónpredeterminado.Porejemplo,sucedeunerrorsisellamaalmétododesdeunmóduloestándarsinespecificarunobjeto,perosisellamadesdeunmódulodeformulario,listasalidasemuestraenelformulario.
NotaPuestoqueelmétodoPrintimprimenormalmenteconcaracteresdeespacioproporcional,esimportanterecordarquenohayrelaciónalgunaentreelnúmerodecaracteresimpresosyelnúmerodecolumnasdeanchofijoqueocupantalescaracteres.Porejemplo,unaletraancha,como"W",ocupamásdeunacolumnadeanchofijo,mientrasqueunaletraestrecha,como"I",ocupamenos.Paratenerencuentaloscasosenlosqueseutilizancaracteresconunanchomayorquelamedia,deberáasegurarsedequelascolumnasdelastablasseencuentrenlobastantelejosunasdeotras.Comoalternativa,puedeutilizarenlaimpresiónunafuentedeanchofijo(comoCourier)parahacerquecadacarácterutilicesólounacolumna.
Raise(Método)
Generaunerrorentiempodeejecución.
Sintaxis
objeto.Raisenumber,source,description,helpfile,helpcontext
ElmétodoRaisetieneelcalificadordeobjetoylosargumentosconnombresiguientes:
Argumento Descripciónobjeto Requerido.SiempreelobjetoErr.number Requerido.EnterodetipoLongqueidentificala
naturalezadelerror.LoserroresdeVisualBasic(tantolosdefinidosporVisualBasiccomolosdefinidosporelusuario)seencuentranentre0y65535.Elintervalode0a512estáreservadoparaerroresdelsistema;elintervalo513a65535estádisponibleparaerroresdefinidosporelusuario.AlestablecerenlapropiedadNumbersupropiocódigodeerrorenunmódulodeclase,agregasucódigodeerroralaconstantevbObjectError.Porejemplo,paragenerarelnúmerodeerror513,asignevbObjectError+513alapropiedadNumber.
source Opcional.Expresióndecadenaqueindicaelobjetoola
aplicaciónquegeneróelerror.Alestablecerestapropiedadparaunobjeto,useelformatoproyecto.clase.Sinoespecificanada,seutilizaráelidentificadorprogramáticodelproyectodeVisualBasicactual.
description Opcional.Expresióndecadenaquedescribeelerror.Sinoseespecifica,seexaminaelvalordeNumber.SisecorrespondeconuncódigodeerrorentiempodeejecucióndeVisualBasic,seutilizaparaDescriptionlacadenaquedevolveríalafunciónError.SinohaycorrespondenciaconningúnerrordeVisualBasic,enNumberseutiliza"Errordefinidoporlaaplicaciónoelobjeto".
helpfile Opcional.RutareconocidadelarchivodeAyudaenelqueseencuentralainformaciónsobreelerror.Sinoseespecifica,VisualBasicutilizarálaunidad,rutaynombrereconocidosdelarchivodeAyudadeVisualBasic.
helpcontext Opcional.IdentificadordecontextoqueespecificaeltemadelarchivoindicadoenHelpFilequecontienelainformacióndeayudadelerror.Siseomite,seutilizaráelidentificadordecontextodelarchivodeAyudadeVisualBasiccorrespondientealvalordelapropiedadNumber,sitalidentificadorexiste.
Comentarios
Todoslosargumentossonopcionales,exceptonumber.Sinembargo,siutilizaRaisesinespecificaralgunosargumentos,ylosvaloresdelaspropiedadesdelobjetoErrnosehanborrado,dichosvaloresseconservaránparaelerroractual.
RaiseseutilizaparagenerarerroresentiempodeejecuciónypuedeusarseenlugardelainstrucciónError.Raiseesútilparagenerarerroresalescribirmódulosdeclase,yaqueelobjetoErrproporcionamásinformacióndelaqueofrecenloserroresgeneradosconlainstrucciónError.Porejemplo,conelmétodoRaisepuedeespecificarseelorigendelerrorenlapropiedadSource,puedeinvocarAyudaenpantallasobreelerror,etc.
Read(Método)
Descripción
LeeunnúmeroespecificadodecaracteresdesdeunarchivoTextStreamydevuelvelacadenaresultante.
Sintaxis
objeto.Read(caracteres)
LasintaxisdelmétodoReadconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoTextStream.caracteres Requerido.Elnúmerodecaracteresquedesealeerdesdeel
archivo.
ReadAll(Método)
Descripción
LeeunarchivoTextStreamcompletoydevuelvelacadenaresultante.
Sintaxis
objeto.ReadAll
ElobjetosiempreeselnombredeunobjetoTextStream.
Comentarios
Paraarchivosgrandes,alutilizarelmétodoReadAllsedesperdicianrecursosdememoria.Debenutilizarseotrastécnicasparaleerunarchivo,comoleerlolíneaporlínea.
ReadLine(Método)
Descripción
Leeunalíneacompleta(hastaelcarácterdenuevalíneaperosinincluirlo)desdeunarchivoTextStreamydevuelvelacadenaresultante.
Sintaxis
objeto.ReadLine
ElargumentoobjetoessiempreelnombredeunobjetoTextStream.
Remove(Método)
QuitaunmiembrodeunobjetoCollection.
Sintaxis
objeto.Removeíndice
LasintaxisdelmétodoRemovecuentaconelcalificadordeobjetoylosargumentossiguientes:
Parte Descripciónobjeto Requerido.Unaexpresióndeobjetoquedacomoresultadounobjeto
incluidoenlalistaSeaplicaa.índice Requerido.Unaexpresiónqueespecificalaposicióndeunmiembrode
lacolección.Sisetratadeunaexpresiónnumérica,índicedebeestarcomprendidoentre1yelvalordelapropiedadCountdelacolección.Siesunaexpresióndecadena,índicedebecorresponderalvalordelargumentokeyespecificadoalagregaralacolecciónelmiembroalquesehacereferencia.
Comentarios
Sielvalorindicadocomoíndicenocoincideconningúnmiembroexistenteenlacolección,seproduceunerror.
Remove(Método)
Descripción
Quitaunparelemento,clavedesdeunobjetoDictionary.
Sintaxis
objeto.Remove(clave)
LasintaxisdelmétodoRemoveconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoDictionary.clave Requerido.Laclaveasociadaconelelementodelparquedesea
quitardelobjetoDictionary.
Comentarios
Seproduceunerrorsielparelemento,claveespecificadonoexiste.
ElcódigosiguientedemuestralautilizacióndelmétodoRemove:
Dima,d,i'Crearalgunasvariables
Setd=CreateObject("Scripting.Dictionary")
d.Add"a","Atenas"'Agregaralgunasclavesyelementos
d.Add"b","Belgrado"
d.Add"c","Cairo"
...
a=d.Remove()'Quitarelsegundopar
RemoveAll(Método)
Descripción
ElmétodoRemoveAllquitatodoslospareselemento,clavedeunobjetoDictionary.
Sintaxis
objeto.RemoveAll
ElobjetosiempreeselnombredeunobjetoDictionary.
Comentarios
ElcódigosiguientedemuestralautilizacióndelmétodoRemoveAll:
Dima,d,i'Crearalgunasvariables
Setd=CreateObject("Scripting.Dictionary")
d.Add"a","Atenas"'Agregaralgunasclavesyelementos
d.Add"b","Belgrado"
d.Add"c","Cairo"
...
a=d.RemoveAll'Borrareldiccionario
Skip(Método)
Descripción
SaltaunnúmeroespecificadodecaracterescuandoseleeunarchivoTextStream.
Sintaxis
objeto.Skip(caracteres)
LasintaxisdelmétodoSkipconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoTextStream.caracteres Requerido.Elnúmerodecaracteresquesevaasaltarcuandose
leaunarchivo.
Comentarios
Loscaracteressaltadossedescartan.
SkipLine(Método)
Descripción
SaltalapróximalíneacuandoseleeunarchivoTextStream.
Sintaxis
objeto.SkipLine
ElobjetosiempreeselnombredeunobjetoTextStream.
Comentarios
Saltarunalíneasignificaleerydescartartodosloscaracteresenunalíneahastaelpróximocarácternuevalínea,ésteincluido.
Seproduceunerrorsielarchivonoseabreparalectura.
Write(Método)
Descripción
EscribeunacadenaespecificadaaunarchivoTextStream.
Sintaxis
objeto.Write(cadena)
LasintaxisdelmétodoWriteconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunobjeto
TextStream.cadena Requerido.Eltextoquedeseaescribiralarchivo.
Comentarios
Lascadenasespecificadasseescribenalarchivosinespaciosintermediosocaracteresentrecadacadena.UtiliceelmétodoWriteLineparaescribirunacaracternewlineounacadenaquefinaliceconuncaracternewline.
WriteBlankLines(Método)
Descripción
EscribeunnúmeroespecificadodecaracteresnuevalíneaaunarchivoTextStream.
Sintaxis
objeto.WriteBlankLines(líneas)
LasintaxisdelmétodoWriteBlankLinesconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoTextStream.líneas Requerido.Elnúmerodecaracteresnuevalíneaquedeseaescribiral
archivo.
WriteLine(Método)
Descripción
EscribeuncaracternuevalíneayunacadenaespecificadaaunarchivoTextStream.
Sintaxis
objeto.WriteLine([cadena])
LasintaxisdelmétodoWriteLineconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoTextStream.cadena Opcional.Eltextoquedeseaescribiralarchivo.Siseomite,se
escribeuncaracternuevalíneaalarchivo.
Collection(Objeto)
UnobjetoCollectionesunconjuntoordenadodeelementosalosquesepuedehacerreferenciacomounaunidad.
Comentarios
ElobjetoCollectionpermitehacerreferenciadeformasencillaaungrupodeelementosrelacionadoscomounúnicoobjeto.Loselementosomiembrosdeunacolecciónsólotienenqueestarrelacionadosporelhechodeexistirenlacolección.Losmiembrosdeunacolecciónnotienenquecompartirelmismotipodedato.
LosobjetosCollectionsepuedencreardelamismaformaqueelrestodelosobjetos.Porejemplo:
DimXAsNewCollection
UnavezcreadounobjetoCollection,selepuedenagregarmiembrosconelmétodoAddyquitárselosconelmétodoRemove.PuedenobtenersemiembrosespecíficosdelobjetoCollectionconelmétodoItem,yhacerunaiteraciónsobrelacoleccióncompletaconlainstrucciónForEach...Next.
Debug(Objeto)
ElobjetoDebugenvíalasalidaalaventanaDepuraciónentiempodeejecución.
Dictionary(Objeto)
Descripción
Objetoquealmacenaparesdatoselemento,clave.
Sintaxis
Scripting.Dictionary
Comentarios
UnobjetoDictionaryeselequivalentedeunamatrizasociativaPERL.Loselementos,quepuedensercualquierformadedatos,sealmacenanenlamatriz.Cadaelementoseasociaconunaclaveúnica.Laclaveseutilizapararecuperarunelementoindividualyesnormalmenteunenteroounacadena,peropuedesercualquiercosaexceptounamatriz.
ElcódigosiguientedemuestracómocrearunobjetoDictionary:
Dimd'Crearunavariable
Setd=CreateObject(Scripting.Dictionary)
d.Add"a","Atenas"'Agregaralgunasclavesyelementos
d.Add"b","Belgrado"
d.Add"c","Cairo"
...
Drive(Objeto)
Descripción
Proporcionaaccesoalaspropiedadesdeunrecursocompartidoderedounaunidaddediscoparticular.
Comentarios
ElcódigosiguientedemuestralautilizacióndelobjetoDriveparaelaccesoalaspropiedadesdelaunidad:
SubShowFreeSpace(drvPath)
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(drvPath)
s="Drive"&UCase(drvPath)&"-"
s=s&d.VolumeName&vbCrLf
s=s&"FreeSpace:"&FormatNumber(d.FreeSpace/1024,0)
s=s&"Kbytes"
MsgBoxs
EndSub
Drives(Colección)
Descripción
Coleccióndesólolecturadetodaslasunidadesdisponibles.
Comentarios
NohacefaltaquelasunidadesdemediosseparablestenganmediosintroducidosparaqueaparezcanenlacolecciónDrives.
ElcódigosiguientedemuestracómoconseguirlacolecciónDrivesyrecorrerlacolecciónutilizandolainstrucciónForEach...Next:
SubShowDriveList
Dimfs,d,dc,s,n
Setfs=CreateObject("Scripting.FileSystemObject")
Setdc=fs.Drives
ForEachdindc
s=s&d.DriveLetter&"-"
Ifd.DriveType=RemoteThen
n=d.ShareName
Else
n=d.VolumeName
EndIf
s=s&n&vbCrLf
Next
MsgBoxs
EndSub
Err(Objeto)
Contieneinformaciónsobreerroresentiempodeejecución.
Comentarios
LaspropiedadesdelobjetoErrlasestablecequiengeneraelerror:VisualBasic,unobjetooelprogramadorenVisualBasic.
LapropiedadpredeterminadadelobjetoErresNumber.ComolapropiedadpredeterminadapuederepresentarseconelnombredeobjetoErr,noesnecesariomodificarelcódigoanteriorescritousandolafunciónErrolainstrucciónErr.
Cuandoseproduceunerrorentiempodeejecución,laspropiedadesdelobjetoErrsellenanconinformaciónqueidentificaalerrordeformaúnicayquepuedeutilizarseparaprocesarlo.Paragenerarunerrorentiempodeejecuciónenelcódigo,utiliceelmétodoRaise.
LaspropiedadesdelobjetoErrserestablecenacerooacadenasdelongitudcero("")trascualquierformadelasinstruccionesResumeuOnError,asícomodespuésdelasinstruccionesExitSub,ExitFunctionoExitPropertydeunarutinadetratamientodeerrores.TambiénpuedeutilizarseelmétodoClearpararestablecerexplícitamenteErr.
UtiliceelmétodoRaise,enlugardelainstrucciónError,paragenerarerroresentiempodeejecuciónenmódulosdeclase.LadecisióndeutilizaronoelmétodoRaiseenotrocódigodependerádelacantidaddeinformaciónquesedeseeproporcionar.
Erresunobjetointrínsecoconalcanceglobal.Noesnecesariocrearunainstanciadelmismoenelcódigo.
File(Objeto)
Descripción
Proporcionaaccesoatodaslaspropiedadesdeunarchivo.
Comentarios
ElcódigosiguientedemuestracómoobtenerunobjetoFileyverunadesuspropiedades.
SubShowFileInfo(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s=f.DateCreated
MsgBoxs
EndSub
Files(Colección)
Descripción
ColeccióndetodoslosobjetosFiledentrodeunacarpeta.
Comentarios
ElcódigosiguientedemuestracómoconseguirunacolecciónFilesyrecorrerlacolecciónutilizandolainstrucciónForEach...Next:
SubShowFolderList(folderspec)
Dimfs,f,f1,fc,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(folderspec)
Setfc=f.Files
ForEachf1infc
s=s&f1.name
s=s&vbCrLf
Next
MsgBoxs
EndSub
FileSystemObject(Objeto)
Descripción
Proporcionaaccesoalsistemadearchivosdeunequipo.
Sintaxis
Scripting.FileSystemObject
Comentarios
ElcódigosiguientedemuestracómoseutilizaelobjetoFileSystemObjectparadevolverunobjetoTextStreamquesepuedeleeroenelquesepuedeescribir:
Setfs=CreateObject("Scripting.FileSystemObject
Seta=fs.CreateTextFile("c:\archivoprueba.txt",True)
a.WriteLine("Estoesunaprueba.")
a.Close
Enelcódigoquesemuestraarriba,lafunciónCreateObjectdevuelveelobjetoFileSystemObject(fs).ElmétodoCreateTextFilecreaentonceselarchivocomounobjetoTextStream(a)yelmétodoWriteLineescribeunalíneadetextoalarchivodetextocreado.ElmétodoClosevacíaelbúferycierraelarchivo.
Folder(Objeto)
Descripción
Proporcionaaccesoatodaslaspropiedadesdeunacarpeta.
Comentarios
ElcódigosiguientedemuestracómoobtenerunobjetoFolderycómodevolverunadesuspropiedades:
SubShowFolderInfo(folderspec)
Dimfs,f,s,
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(folderspec)
s=f.DateCreated
MsgBoxs
EndSub
Folders(Colección)
Descripción
ColeccióndetodoslosobjetosFoldercontenidosdentrodeunobjetoFolder.
Comentarios
ElcódigosiguientedemuestracómoconseguirunacolecciónFoldersycómorecorrerlacolecciónutilizandolainstrucciónForEach...Next:
SubShowFolderList(folderspec)
Dimfs,f,f1,fc,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(folderspec)
Setfc=f.SubFolders
ForEachf1infc
s=s&f1.name
s=s&vbCrLf
Next
MsgBoxs
EndSub
TextStream(Objeto)
Descripción
Facilitaelaccesosecuencialalarchivo.
Sintaxis
TextStream.{propiedad|método}
LosargumentospropiedadymétodopuedensercualquieradelaspropiedadesymétodosasociadosalobjetoTextStream.TengaencuentaqueTextStreamsereemplazaporunmarcadordeposiciónvariablequerepresentaelobjetoTextStreamdevueltoporFileSystemObject.
Comentarios
Enelcódigosiguiente,aeselobjetoTextStreamdevueltoporelmétodo
CreateTextFileenelobjetoFileSystemObject:
Setfs=CreateObject("Scripting.FileSystemObject")
Seta=fs.CreateTextFile("c:\archivoprueba.txt",True)
a.WriteLine("Estoesunaprueba.")
a.Close
WriteLineyClosesondosmétodosdelobjetoTextStream.
&(Operador)
Seutilizaparaforzarlaconcatenacióndelascadenasdedosexpresiones.
Sintaxis
resultado=expresión1&expresión2
Lasintaxisdeloperador&constadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariabletipoStringo
Variant.expresión1 Requerido;cualquierexpresión.expresión2 Requerido;cualquierexpresión.
Comentarios
Siunaexpresiónnoesunacadenadecaracteres,seconvierteenuntipoStringtipovariant.EltipodedatodelresultadoesStringsiambasexpresionessonexpresionesdecadena;delocontrario,elresultadoesunaStringtipovariant.SiambasexpresionessonNull,elresultadoestambiénNull.Sinembargo,sisólounaexpresiónesNull,esaexpresiónseconsideracomounacadenadelongitudcero("")alconcatenarseconlaotraexpresión.CualquierexpresiónEmptyseconsideratambiénunacadenadelongitudcero.
*(Operador)
Seutilizaparamultiplicardosnúmeros.
Sintaxis
resultado=número1*número2
Lasintaxisdeloperador*constadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.
número1 Requerido;cualquierexpresiónnumérica.número2 Requerido;cualquierexpresiónnumérica.
Comentarios
Eltipodedatodelresultadoesgeneralmenteeldelaexpresiónmásexacta.Elordendeprecisión,demenosexactoamásexacto,esByte,Integer,Long,Single,Double,CurrencyyDecimal.Estareglatienelassiguientesexcepciones:
Si ElresultLamultiplicaciónimplicauntipoSingleyuntipoLong,
seconvierteauntipoDouble.
EltipodedatoderesultadoesuntipovariantLong,SingleoDatequesesaledelintervaloválido,
seconvierteaunVariantquecontieneuntipoDouble.
EltipodedatoderesultadoesunBytetipovariantquesesaledelintervaloválido,
seconvierteaunIntegertipovariant.
EltipodedatoderesultadoesunIntegertipovariantquesesaledelintervaloválido,
seconvierteaunLongtipovariant.
SiunaoambasdelasexpresionessondetipoNull,eltipodedatosdelresultadoesNull.SiunaexpresiónesdeltipoEmpty,seconsideracomo0.
NotaElordendeprecisiónutilizadoporlasumaylarestanoesigualqueelordendeprecisiónutilizadoporlamultiplicación.
+(Operador)
Seutilizaparasumardosnúmeros.
Sintaxis
resultado=expresión1+expresión2
Lasintaxisdeloperador+constadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.Expresión1 Requerido;cualquierexpresión.expresión2 Requerido;cualquierexpresión.
Comentarios
Cuandoutiliceeloperador+,quizánopuedadeterminarsisevaarealizarunasumaounaconcatenacióndecadenas.Utiliceeloperador¶laconcatenación,demodoqueseevitenambigüedadesysesuministrenprogramasclarosyexplícitos.
SihayalmenosunaexpresiónquenoseadetipoVariant,seaplicanlassiguientesreglas:
Si EntoncesAmbasexpresionessontiposdedatosnuméricos(Byte,Boolean,Integer,Long,Single,Double,Date,CurrencyoDecimal)
Suma.
AmbasexpresionessondeltipoString Concatenación.Unaexpresiónesdeuntipodedatos Suma.
numéricoylaotracualquiertipoVariantexceptoNullUnaexpresiónesdeltipoStringylaotracualquiertipoVariantexceptoNull
Concatenación.
UnaexpresiónesdeltipoEmptyVariant Devuelvesinmodificacioneslaexpresiónrestantecomoresultado.
UnaexpresiónesdeuntipodedatosnuméricoylaotradetipoString
PuedeocurrirunErrordetipos.
CualquieradelasexpresionesesNull resultadoesNull.
SiambasexpresionessondeltipoVariant,seaplicanlassiguientereglas:
Si EntoncesAmbasexpresionestipoVariantsonnuméricas
Suma.
AmbasexpresionestipoVariantsoncadenasdecaracteres
Concatenación.
UnaexpresióntipoVariantesnuméricaylaotraesunacadenadecaracteres
Suma.
Enadicionesaritméticassimplesdeexpresionesdetiposdedatosnuméricosúnicamente,eltipodedatoderesultadoeshabitualmenteelmismoqueeldelaexpresiónconmayorprecisión.Elordendeprecisión,demenosexactoamásexacto,esByte,Integer,Long,Single,Double,CurrencyyDecimal.Estareglatienelassiguientesexcepciones:
Si ElresultadoesSesumanuntipoSingleyuntipoLong,
untipoDouble.
EltipodedatoderesultadoesLong,SingleoDatetipovariantquedesbordasuintervaloválido,
seconvierteaunDoubletipovariant.
EltipodedatoderesultadoesunByte seconvierteaunIntegertipovariant.
tipovariantquesesaledelintervaloválido,EltipodedatoderesultadoesunIntegertipovariantquesesaledelintervaloválido,
seconvierteaunLongtipovariant.
UnDateseagregaacualquiertipodedato,
untipoDate.
SiunadelasexpresionesoambassonexpresionesdetipoNull,resultadoesNull.SiambasexpresionessonEmpty,elresultadoesInteger.Sinembargo,sólounadelasexpresionesesEmpty,sedevuelvelaotrasinmodificacionescomoresultado.
NotaElordendeprecisiónutilizadoporlasumaylarestanoesigualqueelordendeprecisiónutilizadoporlamultiplicación.
-(Operador)
Seutilizaparahallarladiferenciaentredosnúmerosoparaindicarelvalornegativodeunaexpresiónnumérica.
Sintaxis1
resultado=número1-número2
Sintaxis2
–número
Lasintaxisdeloperador–constadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.número Requerido;cualquierexpresiónnumérica.número1 Requerido;cualquierexpresiónnumérica.número2 Requerido;cualquierexpresiónnumérica.
Comentarios
Enlasintaxis1,–eseloperadordesubstracciónaritméticautilizadoparahallarladiferenciaentredosnúmeros.Enlasintaxis2,–seutilizacomoeloperadordenegaciónunariaparaindicarelvalornegativodeunaexpresión.
Eltipodedatoderesultadoesgeneralmenteeldelaexpresiónmásexacta.Elordendeprecisión,demenosexactoamásexacto,esByte,Integer,Long,Single,Double,CurrencyyDecimal.Esteordentienelassiguientesexcepciones:
Si ElresultEsunasubstraccióndeuntipoSingleyuntipoLong,
seconvierteatipoDouble.
EltipodedatoderesultadoesuntipovariantLong,SingleoDatequesesaledelintervaloválido,
seconvierteaunVariantquecontieneuntipoDouble.
EltipodedatoderesultadoesunBytetipovariantquesesaledelintervaloválido,
seconvierteaunIntegertipovariant.
Eltipodedatoderesultadoesun seconvierteaunLongtipovariant.
Integertipovariantquesesaledelintervaloválido,LasubstracciónimplicaauntipoDateycualquierotrotipodedato,
esuntipoDate.
LasubstracciónimplicadosexpresionestipoDate,
esuntipoDouble.
SiunaoambasdelasexpresionessondetipoNull,eltipodedatosdelresultadoesNull.SiunaexpresiónesdeltipoEmpty,seconsideracomosifuera0.
NotaElordendeprecisiónutilizadoporlasumaylarestanoesigualqueelordendeprecisiónutilizadoporlamultiplicación.
/(Operador)
Seutilizaparadividirdosnúmerosyobtenerunresultadodesignoflotante.
Sintaxis
resultado=número1/número2
Lasintaxisdeloperador/constadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.número1 Requerido;cualquierexpresiónnumérica.número2 Requerido;cualquierexpresiónnumérica.
Comentarios
EltipodedatoderesultadoesnormalmenteunDoubletipovariantountipo
Double.Estareglatienelassiguientesexcepciones:
Si ElresultadoesAmbasexpresionessonexpresionesdetipoByte,IntegeroSingle,
untipoSingleamenosquesalgadesuintervaloválido,encuyocasoseproduceunerror.
AmbasexpresionessonByte,IntegeroSingletipovariant,
untipoSingleamenosquesalgadesuintervaloválido;enestecasoresultadoesuntipoVariantquecontieneuntipoDouble.
LadivisióncontieneuntipoDecimalycualquierotrotipodedato,
untipoDecimal.
SiunaoambasdelasexpresionessondetipoNull,eltipodedatosdelresultadoesNull.SiunaexpresiónesdeltipoEmpty,seconsidera0
\(Operador)
Seutilizaparadividirdosnúmerosyobtenerunresultadoentero.
Sintaxis
resultado=número1\número2
Lasintaxisdeloperador\constadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.número1 Requerido;cualquierexpresiónnumérica.número2 Requerido;cualquierexpresiónnumérica.
Comentarios
AntesdeefectuarladivisiónseredondeanlasexpresionesnuméricasparaconvertirlasenexpresionestipoByte,IntegeroLong.
Normalmente,eltipodedatodelresultadoestipoByte,Bytetipovariant,tipoIntegeroIntegertipovariant,tipoLongoLongtipovariant,independientementedesielresultadoesunnúmeroenteroono.Lapartefraccionariasetrunca.Sinembargo,sicualquieradelasexpresionesesNull,resultadoesNull.TodaexpresiónqueseaEmptyseconsideracomo0.
^(Operador)
Seutilizaparaelevarunnúmeroalapotenciadelexponente.
Sintaxis
resultado=número^exponente
Lasintaxisdeloperador^constadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.número Requerido;cualquierexpresiónnumérica.exponente Requerido;cualquierexpresiónnumérica.
Comentarios
Unnúmeropuedesernegativosólosiexponenteesunentero.Cuandoseefectúamásdeunaexponenciaciónenunaúnicaexpresión,eloperador^seresuelveenelordenenqueesté,deizquierdaaderecha.
Generalmente,eltipodedatodelresultadoesunDoubleounVariantquecontieneunDouble.Sinembargo,sinúmerooexponenteesunaexpresiónNullresultadoestambiénNull.
=(Operador)
Descripción
Utilizadoparaasignarunvaloraunavariableopropiedad.
Sintaxis
variable=valor
Lasintaxisdeloperador=constadelassiguientespartes:
Parte Descripciónvariable Cualquiervariableocualquierpropiedadquesepuede
escribir.valor Cualquierliteraldecadenaonumérico,constanteoexpresión.
Comentarios
Elnombredelladoizquierdodelsignoigualpuedeserunavariablesimpleounelementodeunamatriz.Laspropiedadesdelladoizquierdodelsignoigualsólopuedenserpropiedadesquesepuedenescribirentiempodeejecución.
And(Operador)
Seutilizaparaefectuarunaconjunciónlógicadedosexpresiones.
Sintaxis
resultado=expresión1Andexpresión2
LasintaxisdeloperadorAndconstadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.expresión1Requerido;cualquierexpresión.expresión2Requerido;cualquierexpresión.
Comentarios
SiysólosiambasexpresionesseevalúancomoTrue,elresultadoesTrue.SicualquieradelasexpresionesesFalse,elresultadoesFalse.Lasiguientetablailustracómosedeterminaelresultado:
Siexpresión1es Yexpresión2es ElresultadoesTrue True TrueTrue False FalseTrue Null NullFalse True FalseFalse False FalseFalse Null FalseNull True NullNull False FalseNull Null Null
EloperadorAndejecutatambiénunacomparaciónbitabitparaidentificarlosbitsdedosexpresionesnuméricasquetienenlamismaposiciónyestableceelbitcorrespondienteenelresultadosegúnlasiguientetabladedecisiónlógica:
Sielbitenexpresión1es
Yelbitenexpresión2es Elresultadoes
0 0 00 1 0
1 0 01 1 1
Eqv(Operador)
Seutilizaparaefectuarunaequivalencialógicadedosexpresiones.
Sintaxis
resultado=expresión1Eqvexpresión2
LasintaxisdeloperadorEqvconstadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.Expresión1 Requerido;cualquierexpresión.Expresión2 Requerido;cualquierexpresión.
Comentarios
SicualquieradelasexpresionesesdetipoNull,elresultadoestambiénNull.SiningunadelasexpresionesesNull,elresultadosedeterminasegúnlasiguientetabla:
Siexpresión1es Yexpresión2es ElresultadoesTrue True TrueTrue False FalseFalse True FalseFalse False True
EloperadorEqvejecutaunacomparaciónbitabitparaidentificarlosbitsdedosexpresionesnuméricasquetienenlamismaposiciónyestableceelbitcorrespondienteenelresultadosegúnlasiguientetabladedecisiónlógica:
Sibitenexpresión1es
Ybitenexpresión2es Elresultadoes
0 0 10 1 01 0 01 1 1
Imp(Operador)
Seutilizaparaefectuarunaimplicaciónlógicadedosexpresiones.
Sintaxis
resultado=expresión1Impexpresión2
LasintaxisdeloperadorImpconstadelassiguientespartes:
Parte DescripciónResultado Requerido;cualquiervariablenumérica.Expresión1 Requerido;cualquierexpresión.Expresión2 Requerido;cualquierexpresión.
Comentarios
Lasiguientetablailustracómosedeterminaelresultado:
Siexpresión1es Yexpresión2es ElresultadoesTrue True TrueTrue False FalseTrue Null NullFalse True TrueFalse False TrueFalse Null TrueNull True TrueNull False NullNull Null Null
EloperadorImpejecutaunacomparaciónbitabitparaidentificarlosbitsdedosexpresionesnuméricasquetienenlamismaposiciónyestableceelbitcorrespondienteenelresultadosegúnlasiguientetabladedecisiónlógica:
Sibitenexpresión1es Sibitenexpresión2es Elresultadoes0 0 10 1 11 0 01 1 1
Is(Operador)
Seutilizaparacomparardosvariablesdereferenciadeobjeto.
Sintaxis
resultado=objeto1Isobjeto2
LasintaxisdeloperadorIsconstadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.objeto1 Requerido;cualquiernombredeobjeto.objeto2 Requerido;cualquiernombredeobjeto.
Comentarios
Sitantoobjeto1comoobjeto2serefierenalmismoobjeto,elresultadoesTrue;sino,elresultadoesFalse.Hayvariasmanerasdehacerquedosvariablesserefieranalmismoobjeto.
Enelsiguienteejemplo,sehadefinidoAdemodoqueserefieraalmismoobjetoqueB:
SetA=B
EnelsiguienteejemplosehacequeAyBserefieranalmismoobjetoqueC:
SetA=C
SetB=C
Like(Operador)
Seutilizaparacomparardoscadenasdecaracteres.
Sintaxis
resultado=cadenaLikepatrón
LasintaxisdeloperadorLikeconstadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.cadena Requerido;cualquierexpresióndecadena.patrón Requerido;cualquierexpresióndecadenaquesatisfacelas
convencionesdecoincidenciadepatronesdescritasenComentarios.
Comentarios
Sicadenacoincideconpatrón,elresultadoesTrue;sinocoincide,elresultadoesFalse.SicadenaopatrónesNull,elresultadoestambiénNull.
ElcomportamientodeloperadorLikedependedelainstrucciónOptionCompare.ElmétodopredeterminadodecomparacióndecadenasparacadamóduloesOptionCompareBinary.
OptionCompareBinarydacomoresultadocomparacionesdecadenasbasadasenelordenderivadodelasrepresentacionesbinariasinternasdeloscaracteres.EnMicrosoftWindows,elordendependedelapáginadecódigo.Enelsiguienteejemploseilustraunordenbinariatípico:
A<B<E<Z<a<b<e<z<À<Ê<Ø<à<ê<ø
OptionCompareTextdacomoresultadocomparacionesdecadenasbasadasenelordendeterminadoporlaconfiguraciónregionaldesusistema.Losmismoscaracteresdelejemploanterior,ordenadosconlaopciónOptionCompareText,aparecenenelsiguienteorden:
(A=a)<(À=à)<(B=b)<(E=e)<(Ê=ê)<(Z=z)<(Ø=ø)
Lafunciónintegradadebúsquedadecoincidenciadepatronesofreceunaherramientaversátilparaefectuarcomparacionesdecadenas.Lascaracterísticasdeestafunciónpermitenelempleodecaracterescomodín,listasdecaracteresointervalosdecaracteresencualquiercombinaciónparahallarcoincidenciasencadenas.Enlasiguientetablaseindicanloscaracteresquesepuedenponerenpatrónyconquécoincidenlosmismos:
Caracteresenpattern Coincidenciasenstring? Uncaráctercualquiera.* Ceroomáscaracteres.# Undígitocualquiera(0–9).[listacaracteres] Uncaráctercualquieradelistacaracteres.[!listacaracteres] Uncaráctercualquieranoincluidoenlistacaracteres.
Sepuedeutilizarungrupodeunoomáscaracteres(listacaracteres)entrecorchetes([])paraestablecerunacoincidenciaconuncaráctercualquieradecadena;elgrupopuedeincluircasicualquiercódigodecarácter,incluyendodígitos.
NotaLoscaracteresespecialescorchetedeapertura([),interrogación(?),signodenúmero(#)yasterisco(*)sepuedenutilizarparaestablecerunacoincidencia
consímismossólosivanentrecorchetes.Elcorchetedecierre(])nosepuedeutilizarenungrupoparaestablecerunacoincidenciaconsímismo,perosísepuedeutilizarfueradeungrupo,comocarácterindependiente.
Puedeespecificarunintervalodecaracteresenlistacaracterescolocandounguión(–)parasepararloslímitesinferiorysuperiordelintervalo.Porejemplo,lasecuencia[A–Z]enpatrónpermitehallarunacoincidenciasienlaposicióncorrespondientedecadenahayuncarácterenmayúsculascualquiera,comprendidoenelintervalodelaAalaZ.Sepuedenincluirmúltiplesintervalosentrecorchetes,sinnecesidaddedelimitadores.
Elsignificadodelintervaloespecificadodependedelaordenacióndecaracteresválidaentiempodeejecución(determinadoporOptionCompareylaconfiguraciónregionaldelsistemadóndeestáejecutándoseelcódigo).SiseutilizaelejemploconOptionCompareBinary,enelintervalo[A–E]coincidenA,ByE.ConOptionCompareText,en[A–E]coincidenA,a,À,à,B,b,E,e.Êyênoseincluyenentrelascoincidenciasporqueloscaracteresacentuadosseencuentrandespuésdelosnoacentuadosenelorden.
Otrasreglasimportantesparaefectuarcoincidenciasdepatronessonlassiguientes:
Unaexclamación(!)alcomienzodelistacaracteressignificaquehaycoincidencias,dentrodelacadenaparacualquiercarácterexceptolosincluidosenlistacaracteres.Sinoseencierraentrecorchetes,laexclamacióncoincideconsigomisma.
Elguión(–)puedeaparecertantoalcomienzo(despuésdelaexclamación,siseemplea)oalfinaldelistacaracteresparacoincidirconsigomismo.Encualquierotrolugar,elguiónsólosepuedeutilizarparaidentificarunintervalodecaracteres.
Cuandoseespecificaunintervalodecaracteres,éstosdebenaparecerenordenascendente(demenoramayor).[A-Z]esunpatrónválido,pero[Z-A]noloes.
Lasecuenciadecaracteres[]seconsideraunacadenadecaracteresdelongitudcero("").
Elalfabetodealgunosidiomasincluyecaracteresespecialesqueenrealidadrepresentandoscaracteresdistintos.Porejemplo,variosidiomasempleanelcarácter"æ"pararepresentarloscaracteres"a"y"e"cuandoaparecenjuntos.EloperadorLikereconocequeelcarácterespecialúnicoylosdoscaracteresindividualessonequivalentes.
Cuandoseespecificaenlaconfiguraciónregionaldelsistemaunidiomaqueutilizaunodeestoscaracteresespeciales,alocurrirelcarácterespecialenpatrónocadena,coincideconlasecuenciaequivalentede2caracteresenlaotracadena.Igualmente,unúnicocarácterespecialenpatrónincluidoentrecorchetes(ensolitario,enunalistaoenunintervalo)coincideconlasecuenciade2caracteresequivalenteencadena.
Mod(Operador)
Dividedosnúmerosydevuelvesóloelresto.
Sintaxis
resultado=número1Modnúmero2
LasintaxisdeloperadorModconstadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.número1 Requerido;cualquierexpresiónnumérica.número2 Requerido;cualquierexpresiónnumérica.
Comentarios
Eloperadordemódulo,oresto,dividenúmero1pornúmero2(redondeandoaenteroslosnúmerosdesignoflotante)ydevuelvesóloelrestocomoresultado.Porejemplo,enlasiguienteexpresión,A(queeselresultado)esiguala5.
A=19Mod6.7
Generalmente,eltipodedatoderesultadoestipoByte,Bytetipovariant,tipoInteger,Integertipovariant,tipoLongotipoVariantquecontieneuntipoLong,independientementedesielresultadoesunnúmeroenteroono.Laparte
fraccionariasetrunca.Sinembargo,sicualquieradelasexpresionesesNull,elresultadoestambiénNull.TodaexpresiónEmptyseconsideracomo0.
Not(Operador)
Seutilizaparaejecutarunanegaciónlógicasobreunaexpresión.
Sintaxis
resultado=Notexpresión
LasintaxisdeloperadorNotconstadelassiguientespartes:
Parte Descripción
resultado Requerido;cualquiervariablenumérica.expresiónRequerido;cualquierexpresión.
Comentarios
Lasiguientetablamuestracómosedeterminaelresultado:
Siexpresiónes EntoncesresultadoesTrue FalseFalse TrueNull Null
Además,eloperadorNotinviertelosvaloresdebitdecualquiervariableyestableceelbitcorrespondienteenresultado,deacuerdoconlasiguientetabladedecisiónlógica:
Sielbitenexpresiónes Entonceselbitenresultadoes0 11 0
Operadoresdecomparación
Seutilizanparacompararexpresiones.
Sintaxis
resultado=expresión1operadorcomparaciónexpresión2
resultado=objeto1Isobjeto2
resultado=cadenaLikepatrón
Losoperadoresdecomparaciónconstandelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.expresión Requerido;cualquierexpresión.operadorcomparación Requerido;cualquieroperadordecomparación.objeto Requerido;cualquiernombredeobjeto.cadena Requerido;cualquierexpresióndecadena.patrón Requerido;cualquierexpresióndecadenaointervalo
decaracteres.
Comentarios
Estatablacontieneunalistadelosoperadoresdecomparaciónydelas
condicionesquedeterminansielresultadoesTrue,FalseoNull:
Operador Truesi Falsesi Nullsi<(Menorque) expresión1<
expresión2expresión1>=expresión2
expresión1oexpresión2=Null
<=(Menoroigualque)
expresión1<=expresión2
expresión1>expresión2
expresión1oexpresión2=Null
>(Mayorque) expresión1>expresión2
expresión1<=expresión2
expresión1oexpresión2=Null
>=(Mayoroigualque)
expresión1>=expresión2
expresión1<expresión2
expresión1oexpresión2=Null
=(Iguala) expresión1=expresión2
expresión1<>expresión2
expresión1oexpresión2=Null
<>(Distintode) expresión1<>expresión2
expresión1=expresión2
expresión1oexpresión2=Null
NotaLosoperadoresIsyLiketienenfuncionesdecomparaciónespecíficasquedifierendelasdelosoperadoresincluidosenlasiguientetabla.
Cuandosecomparandosexpresiones,puedeserdifícildeterminarsiéstassecomparancomonúmerosocomocadenasdecaracteres.EnlasiguientetablasemuestraelmodoenquesecomparanexpresionesycuáleselresultadocuandocualquieradelasexpresionesnoesdeltipoVariant:
Si EntoncesAmbasexpresionessondetiposdedatosnuméricos(Byte,Boolean,Integer,Long,Single,Double,Date,CurrencyoDecimal)
Seefectúaunacomparaciónnumérica.
AmbasexpresionessondetipoString Seefectúaunacomparacióndecadenas.
UnaexpresiónesdetipodedatosnuméricoylaotraesuntipoVariantquees,opuedeser,unnúmero
Seefectúaunacomparaciónnumérica.
UnaexpresiónesdetipodedatosnuméricoylaotraesuntipoVariantdecadenadecaracteresquenosepuedeconvertirenunnúmero
ProvocaunerrordeErrordetipos.
UnaexpresiónesdetipoStringylaotraescualquiertipoVariant,conexcepcióndeNull
Seefectúaunacomparacióndecadenas.
UnaexpresiónesEmptyylaotraesdeltipodedatosnumérico
Seefectúaunacomparaciónnumérica,usando0comolaexpresiónEmpty.
UnaexpresiónesEmptyylaotraesdeltipoString
Seefectúaunacomparacióndecadenas,utilizandounacadenadecaracteresdelongitudcero("")comolaexpresiónEmpty.
Sitantoexpresión1comoexpresión2sondeltipoVariant,eltiposubyacentedelasmismaseselquedeterminalamaneraenquesecomparan.EnlasiguientetablasemuestraelmodoenquesecomparanlasexpresionesycuáleselresultadodelaoperacióndeacuerdoconeltiposubyacentedeVariant:
Si EntoncesAmbasexpresionestipoVariantsonnuméricas
Seefectúaunacomparaciónnumérica.
AmbasexpresionestipoVariantsoncadenasdecaracteres
Seefectúaunacomparacióndecadenas.
UnaexpresióntipoVariantesnuméricaylaotraesunacadenadecaracteres
Laexpresiónnuméricaesmenorquelaexpresióndecadena.
UnaexpresióntipoVariantesEmptyylaotraesnumérica
Seefectúaunacomparaciónnumérica,usando0comolaexpresiónEmpty.
UnaexpresióntipoVariantesEmptyylaotraesunacadenadecaracteres
Seefectúaunacomparacióndecadenas,utilizandounacadenadecaracteresdelongitudcero("")comolaexpresiónEmpty.
AmbasexpresionestipoVariantsonEmpty
Lasexpresionessoniguales.
CuandosecomparauntipoSingleconuntipoDouble,ésteseredondeaalgradodeprecisióndeltipoSingle.
SiunaexpresióntipoCurrencysecomparaconunadetipoSingleoDouble,éstaseconviertealtipoCurrency.Deigualforma,cuandountipoDecimalsecomparaconuntipoSingleoDouble,eltipoSingleoelDoubleseconviertenatipoDecimal.ParaeltipoCurrency,cualquiervalorfraccionariomenorque0,0001sepierde;paraeltipoDecimal,cualquiervalorfraccionariomenorque1E-28sepierdeypuedeocurrirunerrordedesbordamiento.Perdervaloresfraccionariospuedehacerquedosvaloressecomparencomoigualescuandoenrealidadnoloson.
Or(Operador)
Seutilizaparaejecutarunadisyunciónlógicasobredosexpresiones.
Sintaxis
resultado=expresión1Orexpresión2
LasintaxisdeloperadorOrconstadelassiguientespartes:
Parte DescripciónResultado Requerido;cualquiervariablenumérica.expresión1Requerido;cualquierexpresión.expresión2Requerido;cualquierexpresión.
Comentarios
Sicualquieradelasexpresiones,oambas,esTrue,elresultadoesTrue.Lasiguientetablaindicacómosedeterminaelresultado:
Siexpresión1es Yexpresión2es ElresultadoesTrue True TrueTrue False TrueTrue Null TrueFalse True TrueFalse False FalseFalse Null NullNull True TrueNull False NullNull Null Null
EloperadorOrejecutaunacomparaciónbitabitparaidentificarlosbitsdedosexpresionesnuméricasquetienenlamismaposiciónyestableceelbitcorrespondienteenelresultadosegúnlasiguientetabladedecisiónlógica:
Sibitenexpresión1es Sibitenexpresión2es Elresultadoes0 0 00 1 11 0 11 1 1
Xor(Operador)
Seutilizapararealizarunaexclusiónlógicaentredosexpresiones.
Sintaxis
[resultado=]expresión1Xorexpresión2
LasintaxisdeloperadorXorconstadelassiguientespartes:
Parte Descripciónresultado Requerido;cualquiervariablenumérica.expresión1Requerido;cualquierexpresión.expresión2Requerido;cualquierexpresión.
Comentarios
SiunaysólounadelasexpresionesesTrue,elresultadoesTrue.Sinembargo,sicualquieradelasexpresionesesNull,elresultadoestambiénNull.CuandoningunadelasexpresionesesNull,elresultadosedeterminadeacuerdoconlasiguientetabla:
Siexpresión1es Yexpresión2es ElresultadoesTrue True FalseTrue False TrueFalse True TrueFalse False False
EloperadorXorfuncionacomooperadorlógicoybitabit.EjecutaunacomparaciónbitabitparaidentificarlosbitsdedosexpresionesutilizandológicadeOexclusivoparaobtenerelresultado,segúnlasiguientetabladedecisiónlógica:
Sibitenexpresión1es Ybitenexpresión2es Elresultadoes0 0 00 1 11 0 11 1 0
Convencionesdedocumentos
LadocumentacióndeVisualBasicutilizalassiguientesconvencionestipográficas.
Convención DescripciónSub,If,ChDir,Print,True,Debug
Laspalabrasennegritayconmayúsculaindicanpalabrasclaveespecíficasdellenguaje.
Setup Laspalabrasquesepidequeescribaelusuariodebenaparecerennegrita.
objeto,nomvariable,listaarg
Lasletrasminúsculasencursivaindicanlosmarcadoresdelugarparaqueelusuarioproporcionelainformación.
pathname,filenumber
Lasletrasminúsculasennegritaycursivaindicanlosmarcadoresdelugarparaargumentosdondesepuedeutilizarsintaxisdeposiciónodeargumentosconnombres.
[listaexpresiones] Loselementosdelasintaxisqueaparecenentrecorchetessonopcionales.
{While|Until} Enlasintaxis,lasllavesylabarravertical
indicanunaelecciónobligatoriaentredosomáselementos.Sedebeelegirunodeloselementos,amenosquetodosesténentrecorchetes.Porejemplo:
[{This|OrThat}]
Esc,Entrar Laspalabrasenmayúsculaindicannombresdearchivo,teclasysecuenciasdeteclas.
Alt+F1,Ctrl+R Unsignomás(+)entrenombresdeteclasindicaunacombinacióndeteclas.Porejemplo,Alt+F1significamantenerpresionadalateclaAltmientrassepresionalateclaF1.
Convencionesdecódigo
Seutilizanlassiguientesconvencionesdecódigo:
Códigodeejemplo DescripciónMiCadena="¡Hola!" Estafuenteseusaparaelcódigo,
variablesytextodemensajesdeerror.
'Estoesuncomentario. Loscomentariosalcódigoseinicianconunapóstrofo(').
MiVar="Estoesun"_
&"ejemplo"_
&"decómocontinuarcódigo."
Unespacioconunsubrayado(_)continúaunalíneadecódigo
Juegodecaracteres(0–127)
0 32 [space] 64 @ 96 `1 33 ! 65 A 97 a2 34 " 66 B 98 b3 35 # 67 C 99 c4 36 $ 68 D 100 d5 37 % 69 E 101 e6 38 & 70 F 102 f7 39 ' 71 G 103 g8 ** 40 ( 72 H 104 h9 ** 41 ) 73 I 105 i10 ** 42 * 74 J 106 j11 43 + 75 K 107 k12 44 , 76 L 108 l13 ** 45 - 77 M 109 m14 46 . 78 N 110 n15 47 / 79 O 111 o16 48 0 80 P 112 p17 49 1 81 Q 113 q18 50 2 82 R 114 r19 51 3 83 S 115 s20 52 4 84 T 116 t21 53 5 85 U 117 u22 54 6 86 V 118 v23 55 7 87 W 119 w
24 56 8 88 X 120 x25 57 9 89 Y 121 y26 58 : 90 Z 122 z27 59 ; 91 [ 123 {28 60 < 92 \ 124 |29 61 = 93 ] 125 }30 62 > 94 ^ 126 ~31 63 ? 95 _ 127
MicrosoftWindowsnoadmiteestoscaracteres.
**Losvalores8,9,10y13seconviertenaretroceso,tabulador,avancedelíneayretornodecarro,respectivamente.Notienenningunarepresentacióngráfica,perodependiendodelaaplicación,puedeninfluirenlapresentaciónvisualdeltexto.
Juegodecaracteres(128–255)
128 € 160 [space] 192 À 224 à129 € 161 ¡ 193 Á 225 á130 € 162 ¢ 194 Â 226 â131 € 163 £ 195 Ã 227 ã132 € 164 ¤ 196 Ä 228 ä133 € 165 ¥ 197 Å 229 å134 € 166 ¦ 198 Æ 230 æ135 € 167 § 199 Ç 231 ç136 € 168 ¨ 200 È 232 è137 € 169 © 201 É 233 é138 € 170 ª 202 Ê 234 ê139 € 171 « 203 Ë 235 ë140 € 172 ¬ 204 Ì 236 ì141 € 173 205 Í 237 í142 € 174 ® 206 Î 238 î143 € 175 ¯ 207 Ï 239 ï144 € 176 ° 208 Ð 240 ð145 € 177 ± 209 Ñ 241 ñ146 € 178 ² 210 Ò 242 ò147 € 179 ³ 211 Ó 243 ó148 € 180 ´ 212 Ô 244 ô149 € 181 µ 213 Õ 245 õ150 € 182 ¶ 214 Ö 246 ö151 € 183 · 215 × 247 ÷
152 € 184 ¸ 216 Ø 248 ø153 € 185 ¹ 217 Ù 249 ù154 € 186 º 218 Ú 250 ú155 € 187 » 219 Û 251 û156 € 188 ¼ 220 Ü 252 ü157 € 189 ½ 221 Ý 253 ý158 € 190 ¾ 222 Þ 254 þ159 € 191 ¿ 223 ß 255 ÿ
€MicrosoftWindowsnoaceptaestoscaracteres.
LosvaloresdelatablasonlospredeterminadosdeWindows.Sinembargo,losvaloresdecarácterANSIestablecidosporencimade127sedeterminanporelcódigodepáginaespecíficodesusistemaoperativo.
As
LapalabraclaveAsseutilizaenestoscontextos:
Const(Instrucción)
Declare(Instrucción)
Dim(Instrucción)
Function(Instrucción)
Name(Instrucción)
Open(Instrucción)
Private(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Public(Instrucción)
ReDim(Instrucción)
Static(Instrucción)
Sub(Instrucción)
Type(Instrucción)
Binary
LapalabraclaveBinaryseutilizaenestoscontextos:
Open(Instrucción)
OptionCompare(Instrucción)
ByRef
LapalabraclaveByRefseutilizaenestoscontextos:
Call(Instrucción)
Declare(Instrucción)
Function(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Sub(Instrucción)
ByVal
LapalabraclaveByValseutilizaenestoscontextos:
Call(Instrucción)
Declare(Instrucción)
Function(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Sub(Instrucción)
Date
LapalabraclaveDateseutilizaenestoscontextos:
Date(Tipodedatos)
Date(Función)
Date(Instrucción)
Else
LapalabraclaveElseseutilizaenestoscontextos:
If...Then...Else(Instrucción)
SelectCase(Instrucción)
Empty
LapalabraclaveEmptyseutilizacomounsubtipoVariant.Indicaqueunavariablenoestáinicializadaconunvalor.
Error
LapalabraclaveErrorseutilizaenestoscontextos:
Error(Función)
Error(Instrucción)
OnError(Instrucción)
False
LapalabraclaveFalsetieneunvaloriguala0.
For
LapalabraclaveForseutilizaenestoscontextos:
For...Next(Instrucción)
ForEach...Next(Instrucción)
Open(Instrucción)
Get
LapalabraclaveGetseutilizaenestoscontextos:
Get(Instrucción)
PropertyGet(Instrucción)
Input
LapalabraclaveInputseutilizaenestoscontextos:
Input(Función)
Input#(Instrucción)
LineInput#(Instrucción)
Open(Instrucción)
Is
LapalabraclaveIsseutilizaenestoscontextos:
If...Then...Else(Instrucción)
Is(Operador)
SelectCase(Instrucción)
Len
LapalabraclaveLenseutilizaenestoscontextos:
Len(Función)
Open(Instrucción)
Let
LapalabraclaveLetseutilizaenestoscontextos:
Let(Instrucción)
PropertyLet(Instrucción)
Lock
LapalabraclaveLockseutilizaenestoscontextos:
Lock,Unlock(Instrucciones)
Open(Instrucción)
Me
LapalabraclaveMesecomportacomounavariabledeclaradadeformaimplícita.Estádisponibleautomáticamenteparatodoslosprocedimientosenun
módulodeclase.Cuandounaclasepuedetenermásdeunainstancia,Meproporcionaunaformadereferirseaunainstanciaespecíficadelaclasedondeseestáejecutandoelcódigo.ElusodeMeesespecialmenteútilcuandosedeseapasarinformaciónsobrelainstanciaqueseestáejecutandoactualmenteaunprocedimientodeotromódulo.Porejemplo,supongaquetieneelprocedimientosiguienteenunmódulo:
SubCambiaColorFormulario(NombreFormularioAsForm)
NombreFormulario.BackColor=RGB(Rnd*256,Rnd*256,Rnd*256)
EndSub
PuedellamaraesteprocedimientoypasarlainstanciaactualdelaclaseFormcomounargumentoutilizandolasiguienteinstrucción:
CambiaColorFormularioMe
Mid
LapalabraclaveMidseutilizaenestoscontextos:
Mid(Función)
Mid(Instrucción)
New
LapalabraclaveNewseutilizaenestoscontextos:
Dim(Instrucción)
Private(Instrucción)
Public(Instrucción)
Set(Instrucción)
Static(Instrucción)
Next
LapalabraclaveNextseutilizaenestoscontextos:
For...Next(Instrucción)
ForEach...Next(Instrucción)
OnError(Instrucción)
Resume(Instrucción)
Nothing
LapalabraclaveNothingseutilizaparadesvincularunavariableobjetodeunobjetoreal.UtilicelainstrucciónSetparaasignarNothingaunavariableobjeto.Porejemplo:
SetMiObjeto=Nothing
Variasvariablesobjetopuedenreferirsealmismoobjetoreal.CuandoNothingseasignaaunavariableobjeto,lavariablenosereferiráyaalobjetoreal.Cuandovariasvariablesobjetoserefierenaunmismoobjeto,losrecursosdememoriaydelsistemaasociadosconelobjetosóloseliberandespuésdequetodasellassehanestablecidocomoNothing,yaseaexplícitamentemedianteSet,oimplícitamentedespuésdequelaúltimavariableobjetoestablecidacomoNothingsalgadelalcance.
Null
LapalabraclaveNullseutilizacomounsubtipoVariant.Indicaqueunavariablenotienedatosválidos.
On
LapalabraclaveOnseutilizaenestoscontextos:
OnError(Instrucción)
On...GoSub(Instrucción)
On...GoTo(Instrucción)
Option
LapalabraclaveOptionseutilizaenestoscontextos:
OptionBase(Instrucción)
OptionCompare(Instrucción)
OptionExplicit(Instrucción)
OptionPrivate(Instrucción)
Optional
LapalabraclaveOptionalseutilizaenestoscontextos:
Declare(Instrucción)
Function(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Sub(Instrucción)
ParamArray
LapalabraclaveParamArrayseutilizaenestoscontextos:
Declare(Instrucción)
Function(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Sub(Instrucción)
LapalabraclavePrintseutilizaenestoscontextos:
Print(Método)
Print#(Instrucción)
Private
LapalabraclavePrivateseutilizaenestoscontextos:
Const(Instrucción)
Declare(Instrucción)
Enum(Instrucción)
Function(Instrucción)
OptionPrivate(Instrucción)
Private(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Sub(Instrucción)
Type(Instrucción)
Property
LapalabraclavePropertyseutilizaenestoscontextos:
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Public
LapalabraclavePublicseutilizaenestoscontextos:
Const(Instrucción)
Declare(Instrucción)
Enum(Instrucción)
Event(Instrucción)
Function(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Public(Instrucción)
Sub(Instrucción)
Type(Instrucción)
Resume
LapalabraclaveResumeseutilizaenestoscontextos:
OnError(Instrucción)
Resume(Instrucción)
Seek
LapalabraclaveSeekseutilizaenestoscontextos:
Seek(Función)
Seek(Instrucción)
Set
LapalabraclaveSetseutilizaenestoscontextos:
Set(Instrucción)
PropertySet(Instrucción)
Static
LapalabraclaveStaticseutilizaenestoscontextos:
Function(Instrucción)
PropertyGet(Instrucción)
PropertyLet(Instrucción)
PropertySet(Instrucción)
Static(Instrucción)
Sub(Instrucción)
Step
LapalabraclaveStepseutilizaenestoscontextos:
For...Next(Instrucción)
ForEach...Next(Instrucción)
String
LapalabraclaveStringseutilizaenestoscontextos:
String(Tipodedatos)
String(Función)
Then
LapalabraclaveThenseutilizaenestoscontextos:
#If...Then...#Else(Directiva)
If...Then...Else(Instrucción)
Time
LapalabraclaveTimeseutilizaenestoscontextos:
Time(Función)
Time(Instrucción)
To
LapalabraclaveToseutilizaenestoscontextos:
Dim(Instrucción)
For...Next(Instrucción)
Lock,Unlock(Instrucciones)
Private(Instrucción)
Public(Instrucción)
ReDim(Instrucción)
SelectCase(Instrucción)
Static(Instrucción)
Type(Instrucción)
True
LapalabraclaveTruetieneunvaloriguala-1.
WithEvents
LapalabraclaveWithEventsseutilizaenestoscontextos:
Dim(Instrucción)
Private(Instrucción)
Public(Instrucción)
AtEndOfLine(Propiedad)
Descripción
PropiedaddesólolecturaquedevuelveTruesielpunterodelarchivoprecedeinmediatamentealmarcadordefinaldelíneaenunarchivoTextStream.DevuelveFalsesinoleprecede.
Sintaxis
objeto.AtEndOfLine
ElobjetosiempreeselnombredeunobjetoTextStream.
Comentarios
LapropiedadAtEndOfLinesóloesaplicablealosarchivosTextStreamqueestánabiertosparalectura;sino,seproduceunerror.
ElcódigosiguientedemuestralautilizacióndelapropiedadAtEndOfLine:
Dimfs,a,retstring
Setfs=CreateObject("Scripting.FileSystemObject")
Seta=fs.OpenTextFile("c:\archivoprueba.txt",ForReading,False)
DoWhilea.AtEndOfLine<>True
retstring=a.Read(1)
...
Loop
a.Close
AtEndOfStream(Propiedad)
Descripción
PropiedaddesólolecturaquedevuelveTruesielpunterodelarchivoestáalfinaldeunarchivoTextStream.DevuelveFalsesinoloestá.
Sintaxis
objeto.AtEndOfStream
ElobjetoessiempreelnombredeunobjetoTextStream.
Comentarios
LapropiedadAtEndOfStreamsóloesaplicableaarchivosTextStreamqueseabrenparalectura;sino,seproduceunerror.
ElcódigosiguientedemuestralautilizacióndelapropiedadAtEndOfStream:
Dimfs,a,retstring
Setfs=CreateObject("Scripting.FileSystemObject")
Seta=fs.OpenTextFile("c:\archivoprueba.txt",ForReading,False)
DoWhilea.AtEndOfStream<>True
retstring=a.ReadLine
...
Loop
a.Close
Attributes(Propiedad)
Descripción
Estableceodevuelvelosatributosdearchivosocarpetas.Lecturaoescritura,osólolectura,dependiendodelatributo.
Sintaxis
objeto.Attributes[=atributosNuevos]
LapropiedadAttributesconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileoFolder.atributosNuevos Opcional.Siseproporciona,atributosNuevoseselnuevo
valorparalosatributosdelobjetoespecificado.
Valores
ElargumentoatributosNuevospuedetenercualquieradelosvaloressiguientesocualquiercombinaciónlógicadelosvaloressiguientes:
Constante Valor Descripción
Normal 0 Archivonormal.Noseestablecenatributos.ReadOnly 1 Archivodesólolectura.Elatributoesdelecturao
escritura.Hidden 2 Archivooculto.Elatributoesdelecturaoescritura.System 4 Archivodelsistema.Elatributoesdelecturao
escritura.Volume 8 Etiquetadelvolumendelaunidaddedisco.El
atributoesdesólolectura.Directory 16 Carpetaodirectorio.Elatributoesdesólolectura.Archive 32 Elarchivocambiódesdelaúltimacopiade
seguridad.Elatributoesdelecturaoescritura.Alias 64 Vínculoométodoabreviado.Elatributoesdesólo
lectura.Compressed 128 Archivocomprimido.Elatributoesdesólolectura.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadAttributesconunarchivo:
SubSetClearArchiveBit(filespec)
Dimfs,f,r
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(fs.GetFileName(filespec))
Iff.attributesand32Then
r=MsgBox("ElbitArchivoestáestablecido,¿deseaborrarlo?",vbYesNo,"Establecer/BorrarbitArchivo")
Ifr=vbYesThen
f.attributes=f.attributes-32
MsgBox"ElbitArchivohasidoborrado."
Else
MsgBox"ElbitArchivopermaneceestablecido."
EndIf
Else
r=MsgBox("ElbitArchivonoestáestablecido.¿Deseaverlo?",vbYesNo,"Establecer/BorrarbitArchivo")
Ifr=vbYesThen
f.attributes=f.attributes+32
MsgBox"ElbitArchivoestáestablecido."
Else
MsgBox"ElbitArchivopermaneceborrado."
EndIf
EndIf
EndSub
AvailableSpace(Propiedad)
Descripción
Devuelvelacantidaddeespaciodisponibleparaunusuarioenelrecursocompartidoderedolaunidadespecificada.
Sintaxis
objeto.AvailableSpace
ElobjetoessiempreunobjetoDrive.
Comentarios
ElvalordevueltoporlapropiedadAvailableSpacenormalmenteeslamismaquedevolviólapropiedadFreeSpace.Puedenexistirdiferenciasentrelosdosvaloresparasistemasdeequiposqueadmitencuotas.
ElcódigosiguientedemuestralautilizacióndelapropiedadAvailableSpace:
SubShowAvailableSpace(drvPath)
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(drvPath))
s="Drive"&UCase(drvPath)&"-"
s=s&d.VolumeName&vbCrLf
s=s&"AvailableSpace:"&FormatNumber(d.AvailableSpace
s=s&"Kbytes"
MsgBoxs
EndSub
Calendar(Propiedad)
Devuelveoestableceunvalorqueespecificaeltipodecalendarioautilizarenelproyecto.
PuedeutilizardosvaloresparaCalendar:
Parámetro Valor DescripciónvbCalGreg 0 Utilizaelcalendariogregoriano
(predeterminado).vbCalHijri 1 UtilizaelcalendarioHijri.
Comentarios
SólopuedeestablecerlapropiedadCalendarporprograma.Porejemplo,parautilizarelcalendarioHijri,utilice:
Calendar=vbCalHijri
Column(Propiedad)
Descripción
PropiedaddesólolecturaquedevuelveelnúmerodelacolumnadelaposiciónactualdelcarácterenunarchivoTextStream.
Sintaxis
objeto.Column
ElobjetoessiempreelnombredeunobjetoTextStream.
Comentarios
Despuésdeescribiruncarácternuevalínea,peroantesdequeseescribacualquierotrocarácter,Columnesiguala1.
CompareMode(Propiedad)
Descripción
EstableceydevuelveelmododecomparaciónqueseutilizaparacompararclavesdecadenasenunobjetoDictionary.
Sintaxis
objeto.CompareMode[=comparar]
LapropiedadCompareModeconstadelaspartessiguientes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoDictionary.comparar Opcional.Siseproporciona,compararesunvalorquerepresenta
elmododecomparaciónutilizadoporlasfuncionescomoStrComp.
Valores
Elargumentocompararpuedetenerlossiguientesvalores:
Constante Valor Descripción
vbUseCompareOption –1 RealizarunacomparaciónutilizandoelvalordelainstrucciónOptionCompare.
vbBinaryCompare 0 Realizarunacomparaciónbinaria.vbTextCompare 1 Realizarunacomparaciónbasadaeneltexto.vbDatabaseCompare 2 SóloMicrosoftAccess.Realizaruna
comparaciónbasadaenlainformacióndesubasededatos.
Comentarios
SeproduceunerrorsiintentacambiarelmododecomparacióndeunobjetoDictionaryqueyacontienedatos.
LapropiedadCompareModeutilizalosmismosvaloresqueelargumentocompararparalafunciónStrComp.Losvaloressuperioresa2sepuedenutilizarparahacerreferenciaacomparacionesutilizandoidentificadoreslocalesespecificosdelaconfiguraciónregional(LCID,LocaleIdentifier).
Count(Propiedad)
DevuelveuntipoLong(enterolargo)quecontieneelnúmerodeobjetosdeunacolección.Sólolectura.
Count(Propiedad)
Descripción
DevuelveelnúmerodeelementosdeunacolecciónuobjetoDictionary.Sólolectura.
Sintaxis
objeto.Count
ElobjetoessiempreelnombredeunodeloselementosdelalistaAplicablea.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadCount:
Dima,d,i'Crearvariasvariables
Setd=CreateObject("Scripting.Dictionary")
d.Add"a","Athens"'Agregarvariasclavesyelementos.
d.Add"b","Belgrade"
d.Add"c","Cairo"
a=d.Keys'Obtenerlasclaves
Fori=0Tod.Count-1'Repetirparacadaelementodelarray
Printa(i)'Imprimirlaclave
Next
...
DateCreated(Propiedad)
Descripción
Devuelvelafechayhoraenquesecreólacarpetaoarchivoespecificos.Sólolectura.
Sintaxis
objeto.DateCreated
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadDateCreatedconunarchivo:
SubShowFileInfo(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s="Creado:"&f.DateCreated
MsgBoxs
EndSub
DateLastAccessed(Propiedad)
Descripción
Devuelvelafechayhoraalaqueseprodujounaccesoaunacarpetaoarchivoespecificadosporúltimavez.Sólolectura.
Sintaxis
objeto.DateLastAccessed
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadDateLastAccessedconunarchivo:
SubShowFileAccessInfo(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s=UCase(filespec)&vbCrLf
s=s&"Creado:"&f.DateCreated&vbCrLf
s=s&"Últimoacceso:"&f.DateLastAccessed
s=s&"Últimamodificación:"&f.DateLastModified
MsgBoxs,0,"Informacióndeaccesoalarchivo"
EndSub
ImportanteElcomportamientodeestemétododependedelsistemaoperativo.Sielsistemaoperativonoproporcionainformacióndelahoraolafecha,nosedevolveráningunainformación.
DateLastModified(Propiedad)
Descripción
Devuelvelafechayhoraenquesemodificóporúltimavezlacarpetaoelarchivoespecificados.Sólolectura.
Sintaxis
objeto.DateLastModified
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadDateLastModifiedconunarchivo:
SubShowFileAccessInfo(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s=UCase(filespec)&vbCrLf
s=s&"Creado:"&f.DateCreated&vbCrLf
s=s&"Últimoacceso:"&f.DateLastAccessed&vbCrLf
s=s&"Últimamodificación:"&f.DateLastModified
MsgBoxs,0,"Informacióndeaccesoalarchivo"
EndSub
Description(Propiedad)
Devuelveoestableceunaexpresióndecadenaquecontieneunacadenadescriptivaasociadaaunerror.Lectura/escritura.
ParaelobjetoErr,devuelveoestableceunacadenadescriptivaasociadaaunerror.
Comentarios
LapropiedadDescriptioncontieneunabrevedescripcióndelerror.Puede
utilizarestapropiedadparanotificaralusuariounerrorqueustednopuedeonodeseatratar.Algenerarunerrordefinidoporelusuario,asigneunabrevedescripcióndelmismoaestapropiedad.SinoserellenaDescriptionyelvalordeNumbercorrespondeaunerrorentiempodeejecucióndeVisualBasic,lacadenaquedevuelvelafunciónErrorsecolocaenDescriptioncuandosegeneraelerror.
Drive(Propiedad)
Descripción
Devuelvelaletradelaunidadenlaqueresidelacarpetaoelarchivoespecificados.Sólolectura.
Sintaxis
objeto.Drive
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadDrive:
SubShowFileAccessInfo(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s=f.Name&"onDrive"&UCase(f.Drive)&vbCrLf
s=s&"Creado:"&f.DateCreated&vbCrLf
s=s&"Últimoacceso:"&f.DateLastAccessed&vbCrLf
s=s&"Últimamodificación:"&f.DateLastModified
MsgBoxs,0,"Informacióndeaccesoalarchivo"
EndSub
DriveLetter(Propiedad)
Descripción
Devuelvelaletradeunidaddeunaunidadlocalfísicaounrecursocompartidodered.Sólolectura.
Sintaxis
objeto.DriveLetter
ElobjetoessiempreunobjetoDrive.
Comentarios
LapropiedadDriveLetterdevuelveunacadenadelongitudcero("")silaunidadespecificadanoestáasociadaconunaletradeunidad,porejemplo,unrecursocompartidoderedquenoseasignóaunaletradeunidad.
ElcódigosiguientedemuestralautilizacióndelapropiedadDriveLetter:
SubShowDriveLetter(drvPath)
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(drvPath))
s="Unidad"&d.DriveLetter&":-"
s=s&d.VolumeName&vbCrLf
s=s&"Espaciolibre:"&FormatNumber(d.FreeSpace/1024,0)
s=s&"Kbytes"
MsgBoxs
EndSub
Drives(Propiedad)
Descripción
DevuelveunacolecciónDrivesquesecomponedelosobjetosDrivedisponiblesenlamáquinalocal.
Sintaxis
objeto.Drives
ElobjetoessiempreunobjetoFileSystemObject.
Comentarios
NoesnecesarioquelasunidadesdemediosseparablestenganmediosintroducidosparaqueaparezcanenlacolecciónDrives.
PuederecorrerlosmiembrosdelacolecciónDrivesutilizandounaconstrucciónForEach...Nextcomosedemuestraenelcódigosiguiente:
SubShowDriveList
Dimfs,d,dc,s,n
Setfs=CreateObject("Scripting.FileSystemObject")
Setdc=fs.Drives
ForEachdindc
s=s&d.DriveLetter&"-"
Ifd.DriveType=3Then
n=d.ShareName
Else
n=d.VolumeName
EndIf
s=s&n&vbCrLf
Next
MsgBoxs
EndSub
DriveType(Propiedad)
Descripción
Devuelveunvalorqueindicaeltipodeunaunidadespecificada.
Sintaxis
objeto.DriveType
ElobjetoessiempreunobjetoDrive.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadDriveType:
SubShowDriveType(drvpath)
Dimfs,d,s,t
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(drvpath)
SelectCased.DriveType
Case0:t="Desconocido"
Case1:t="Separable"
Case2:t="Fijo"
Case3:t="Red"
Case4:t="CD-ROM"
Case5:t="DiscoRAM"
EndSelect
s="Unidad"&d.DriveLetter&":-"&t
MsgBoxs
EndSub
Files(Propiedad)
Descripción
DevuelveunacolecciónFilesquesecomponedelosobjetosFilecontenidosenlacarpetaespecificada,incluyendolosquetienenestablecidosatributosdelarchivodelsistemayoculto.
Sintaxis
objeto.Files
ElobjetoessiempreunobjetoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadFiles:
SubShowFileList(folderspec)
Dimfs,f,f1,fc,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(folderspec)
Setfc=f.Files
ForEachf1infc
s=s&f1.name
s=s&vbCrLf
Next
MsgBoxs
EndSub
FileSystem(Propiedad)
Descripción
Devuelveeltipodesistemadearchivosqueutilizalaunidadespecificada.
Sintaxis
objeto.FileSystem
ElobjetoessiempreunobjetoDrive.
Comentarios
LostiposderetornodisponiblesincluyenFAT,NTFSyCDFS.
ElcódigosiguientedemuestralautilizacióndelapropiedadFileSystem:
SubShowFileSystemType
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive("e:")
s=d.FileSystem
MsgBoxs
EndSub
FreeSpace(Propiedad)
Descripción
Devuelvelacantidaddeespaciolibredisponibleparaunusuarioenelrecursocompartidoderedounidadespecificada.Sólolectura.
Sintaxis
objeto.FreeSpace
ElobjetoessiempreunobjetoDrive.
Comentarios
ElvalordevueltoporlapropiedadFreeSpacenormalmenteeselmismoqueelquedevolviólapropiedadAvailableSpace.Puedenexistirdiferenciasentrelosdosensistemasdeequiposqueadmitancuotas.
ElcódigosiguientedemuestralautilizacióndelapropiedadFreeSpace:
SubShowFreeSpace(drvPath)
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(drvPath))
s="Unidad"&UCase(drvPath)&"-"
s=s&d.VolumeName&vbCrLf
s=s&"Espaciolibre:"&FormatNumber(d.FreeSpace
s=s&"Kbytes"
MsgBoxs
EndSub
HelpContext(Propiedad)
DevuelveoestableceunaexpresióndecadenaquecontieneelidentificadordecontextodeuntemaparaunarchivodeAyudadeMicrosoftWindows.Lectura/escritura.
Comentarios
LapropiedadHelpContextseusaparamostrarautomáticamenteeltemadeAyudaespecificadoenlapropiedadHelpFile.SiHelpFileyHelpContextestánvacías,secomprobaráelvalordeNumber.SiNumbercorrespondeaunvalor
deerrorentiempodeejecucióndeVisualBasic,seusaelidentificadordecontextoparaelerrordeVisualBasic.SielvalordeNumbernocorrespondeaunerrordeVisualBasic,semostrarálapantalladeíndicedelarchivodeAyudadeVisualBasic.
NotaEnsuaplicacióndebeincluirrutinasdetratamientodeloserroresmáscomunes.Alprogramarconunobjeto,puedeutilizarlainformaciónqueproporcionaelarchivodeAyudaparamejorarlacalidaddeltratamientodeloserroresoparamostrarunmensajesignificativoparaelusuariosielerrornoesrecuperable.
HelpFile(Propiedad)
DevuelveoestableceunaexpresióndecadenaconunarutacompletadeunarchivodeAyudadeMicrosoftWindows.Lectura/escritura.
Comentarios
CuandoseespecificaunarchivodeAyudaenHelpFile,selellamaautomáticamentecuandoelusuariohaceclicelbotónAyuda(opresionalateclaF1)delcuadrodediálogodelmensajedeerror.SilapropiedadHelpContextcontieneunidentificadordecontextoválidoparaelarchivoespecificado,semostraráautomáticamenteeltemacorrespondiente.SinoseespecificanadaenHelpFile,apareceráelarchivodeAyudadeVisualBasic.
NotaEnsuaplicacióndebeincluirrutinasdetratamientodeloserroresmáscomunes.Alprogramarconunobjeto,puedeutilizarlainformaciónqueproporcionaelarchivodeAyudaparamejorarlacalidaddeltratamientodeloserroresoparamostrarunmensajesignificativoparaelusuariosielerrornoes
recuperable.
IsReady(Propiedad)
Descripción
DevuelveTruesilaunidadespecificadaestápreparadayFalsesinoloestá.
Sintaxis
objeto.IsReady
ElobjetoessiempreunobjetoDrive.
Comentarios
ParaunidadesdemediosseparablesyunidadesdeCD-ROM,IsReadydevuelveTruesólocuandoseinsertanlosmediosapropiadosyestánpreparadosparaelacceso.
ElcódigosiguientedemuestralautilizacióndelapropiedadIsReady:
SubShowDriveInfo(drvpath)
Dimfs,d,s,t
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(drvpath)
SelectCased.DriveType
Case0:t="Desconocido"
Case1:t="Separable"
Case2:t="Fijo"
Case3:t="Red"
Case4:t="CD-ROM"
Case5:t="DiscoRAM"
EndSelect
s="Unidad"&d.DriveLetter&":-"&t
Ifd.IsReadyThen
s=s&vbCrLf&"Launidadestápreparada."
Else
s=s&vbCrLf&"Launidadnoestápreparada."
EndIf
MsgBoxs
EndSub
IsRootFolder(Propiedad)
Descripción
DevuelveTruesilacarpetaespecificadaeslacarpetaraízyFalsesinoloes.
Sintaxis
objeto.IsRootFolder
ElobjetoessiempreunobjetoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadIsRootFolder:
Dimfs
Setfs=CreateObject("Scripting.FileSystemObject")
SubDisplayLevelDepth(pathspec)
Dimf,n
Setf=fs.GetFolder(pathspec)
Iff.IsRootFolderThen
MsgBox"Lacarpetaespecificadaestáenlacarpetaraíz."
Else
DoUntilf.IsRootFolder
Setf=f.ParentFolder
n=n+1
Loop
MsgBox"Lacarpetaespecificadaestáanidada"&n&"niveles."
EndIf
EndSub
Item(Propiedad)
Descripción
EstableceodevuelveunelementoparaunaclaveespecificadaenunobjetoDictionary.Paracolecciones,devuelveunelementobasadoenlaclaveespecificada.Lecturaoescritura.
Sintaxis
objeto.Item(clave)[=elementoNuevo]
LapropiedadItemconstadelaspartessiguientes:
Parte Descripciónobjeto Requerido.Siempreelnombredeunacolecciónuobjeto
Dictionary.clave Requerido.Laclaveasociadaconelelementoqueserecuperao
agrega.elementoNuevo Opcional.UtilizadosóloparaelobjetoDictionary;sin
aplicaciónparacolecciones.Siseproporciona,elargumentoelementoNuevoeselvalornuevoqueseasociaconlaclaveespecificada.
Comentarios
Silaclavenoseencuentracuandosecambiaunelemento,secreaunaclavenuevaconelelementoNuevoespecificado.Silaclavenoseencuentracuandoseintentadevolverunelementoexistente,secreaunaclavenuevaysuelementocorrespondientesedejavacío.
Key(Propiedad)
Descripción
EstableceunaclaveenunobjetoDictionary.
Sintaxis
objeto.Key(clave)=claveNueva
LapropiedadKeyconstadelaspartessiguientes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoDictionary.clave Requerido.Elvalordelaclavequesecambia.claveNueva Requerido.Elvalornuevoquereemplazalaclaveespecificada.
Comentarios
Sinoseencuentralaclavecuandosecambiaunaclave,seproduciráunerrorentiempodeejecución.
LastDLLError(Propiedad)
Devuelveuncódigodeerrordesistemaproducidoporunallamadaaunabibliotecadevínculosdinámicos(DLL).Sólolectura.
Comentarios
LapropiedadLastDLLErrorseaplicasóloallamadasaDLLrealizadasdesdecódigodeVisualBasic.Normalmente,cuandoserealizanllamadasdeestetipo,lafunciónllamadadevuelveuncódigoqueindicaeléxitooelfallodelaoperaciónyserellenalapropiedadLastDLLError.ConsulteladocumentacióndelasfuncionesdelaDLLparadeterminarquévaloresderetornoindicaneléxitooelfallo.Siembrequesedevuelvaelcódigodefallo,laaplicacióndeVisualBasicdeberácomprobarinmediatamentelapropiedadLastDLLError.CuandoseestablecelapropiedadLastDLLErrornosegeneraningunaexcepción.
Line(Propiedad)
Descripción
PropiedaddesólolecturaquedevuelveelnúmerodelíneaactualenunarchivoTextStream.
Sintaxis
objeto.Line
ElobjetoessiempreelnombredeunobjetoTextStream.
Comentarios
Unavezqueseabreunarchivoinicialmenteyantesdequeseescribaalgo,lapropiedadLineesiguala1.
Name(Propiedad)
Descripción
Estableceodevuelveelnombredeunacarpetaoarchivoespecificados.Lectura/escritura.
Sintaxis
objeto.Name[=nombreNuevo]
LapropiedadNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoFileoFolder.nombreNuevo Opcional.Siseproporciona,nombreNuevoeselnombrenuevo
delobjetoespecificado.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadName:
SubShowFileAccessInfo(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s=f.Name&"enlaunidad"&UCase(f.Drive)&vbCrLf
s=s&"Creado:"&f.DateCreated&vbCrLf
s=s&"Últimoacceso:"&f.DateLastAccessed&vbCrLf
s=s&"Últimamodificación:"&f.DateLastModified
MsgBoxs,0,"Informacióndeaccesoalarchivo"
EndSub
Number(Propiedad)
Devuelveoestableceunvalornuméricoqueespecificaunerror.NumbereslapropiedadpredeterminadadelobjetoErr.Lectura/escritura.
Comentarios
Aldevolverunerrordefinidoporelusuariodesdeunobjeto,establezcaErr.NumberagregandoelnúmeroquehaseleccionadocomocódigodeerroralaconstantevbObjectError.Porejemplo,puedeutilizarlalíneasiguienteparadevolverelnúmero1051comocódigodeerror:
Err.RaiseNumber:=vbObjectError+1051,Source:="AlgunaClase"
ParentFolder(Propiedad)
Descripción
DevuelveelobjetoFolderqueidentificaparalacarpetaprincipaldelacarpetaoelarchivoespecificados.Sólolectura.
Sintaxis
objeto.ParentFolder
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadParentFolderconunarchivo:
SubShowFileAccessInfo(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s=UCase(f.Name)&"en"&UCase(f.ParentFolder
s=s&"Creado:"&f.DateCreated&vbCrLf
s=s&"Últimoacceso:"&f.DateLastAccessed&vbCrLf
s=s&"Últimamodificación:"&f.DateLastModified
MsgBoxs,0,"Informacióndeaccesoalarchivo"
EndSub
Path(Propiedad)
Descripción
Devuelvelarutadeunaunidad,carpetaoarchivoespecificados.
Sintaxis
objeto.Path
ElobjetoessiempreunobjetoFile,FolderoDrive.
Comentarios
Paraletrasdeunidad,launidadraíznoestáincluida.Porejemplo,larutadelaunidadCesC:,noC:\.
ElcódigosiguientedemuestralautilizacióndelapropiedadPathconunobjetoFile:
SubShowFileAccessInfo(filespec)
Dimfs,d,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s=UCase(f.Path)&vbCrLf
s=s&"Creado:"&f.DateCreated&vbCrLf
s=s&"Últimoacceso:"&f.DateLastAccessed&vbCrLf
s=s&"Últimamodificación:"&f.DateLastModified
MsgBoxs,0,"Informacióndeaccesoalarchivo"
EndSub
RootFolder(Propiedad)
Descripción
DevuelveunobjetoFolderquerepresentalacarpetaraízdeunaunidadespecificada.Sólolectura.
Sintaxis
objeto.RootFolder
ElobjetoessiempreunobjetoDrive.
Comentarios
SepuedeteneraccesoatodoslosarchivosycarpetascontenidasenlaunidadutilizandoelobjetoFolderdevuelto.
SerialNumber(Propiedad)
Descripción
Devuelveelnúmerodeseriedecimalqueseutilizaparaidentificardeformaúnicaunvolumendedisco.
Sintaxis
objeto.SerialNumber
ElobjetoessiempreunobjetoDrive.
Comentarios
PuedeutilizarlapropiedadSerialNumberparaasegurarsequeseintroduceeldiscocorrectoenunaunidadconmediosseparables.
ElcódigosiguientedemuestralautilizacióndelapropiedadSerialNumber:
SubShowDriveInfo(drvpath)
Dimfs,d,s,t
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
SelectCased.DriveType
Case0:t="Desconocido"
Case1:t="Separable"
Case2:t="Fijo"
Case3:t="Red"
Case4:t="CD-ROM"
Case5:t="DiscoRAM"
EndSelect
s="Unidad"&d.DriveLetter&":-"&t
s=s&vbCrLf&"NS:"&d.SerialNumber
MsgBoxs
EndSub
ShareName(Propiedad)
Descripción
Devuelveelnombredelrecursocompartidoderedparaunaunidadespecificada.
Sintaxis
objeto.ShareName
ElobjetoessiempreunobjetoDrive.
Comentarios
Sielobjetonoesunaunidaddered,lapropiedadShareNamedevuelveunacadenadelongitudcero("").
ElcódigosiguientedemuestralautilizacióndelapropiedadShareName:
SubShowDriveInfo(drvpath)
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
s="Unidad"&d.DriveLetter&":-"&d.ShareName
MsgBoxs
EndSub
ShortName(Propiedad)
Descripción
Devuelveelnombrecortoutilizadoporlosprogramasquenecesitanlaconvencióndenomenclatura8+3anterior.
Sintaxis
objeto.ShortName
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadShortNameconunobjetoFile:
SubShowShortName(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s="Elnombrecortopara"&""&UCase(f.Name)
s=s&""&vbCrLf
s=s&"es:"&""&f.ShortName&""
MsgBoxs,0,"Informacióndenombrecorto"
EndSub
ShortPath(Propiedad)
Descripción
Devuelvelarutacortautilizadaporlosprogramasquenecesitannecesitanlaconvencióndenomenclatura8+3anterior.
Sintaxis
objeto.ShortPath
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadShortNameconunobjetoFile:
SubShowShortPath(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFile(filespec)
s="Larutacortapara"&""&UCase(f.Name)
s=s&""&vbCrLf
s=s&"es:"&""&f.ShortPath&""
MsgBoxs,0,"Informaciónderutacorta"
EndSub
Size(Propiedad)
Descripción
Paraarchivos,devuelveeltamaño,enbytes,delarchivoespecificado.Paracarpetas,devuelveeltamaño,enbytes,detodoslosarchivosysubcarpetascontenidosenlacarpeta.
Sintaxis
objeto.Size
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadSizeconunobjetoFolder:
SubShowFolderSize(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(filespec)
s=UCase(f.Name)&"utiliza"&f.size&"bytes."
MsgBoxs,0,"Informacióndeltamañodelacarpeta"
EndSub
Source(Propiedad)
Devuelveoestableceunaexpresióndecadenaqueespecificaelnombredelobjetoolaaplicaciónquegeneróelerror.Lectura/escritura.
Comentarios
LapropiedadSourceespecificaunaexpresióndecadenaquerepresentaalobjetoquegeneróelerror;laexpresiónesnormalmenteelnombredeclaseoelidentificadorprogramáticodelobjeto.PuedeutilizarSourceparaproporcionarinformaciónalusuariocuandoelcódigonopuedatratarunerrorgeneradoenunobjetoalquesehatenidoacceso.Porejemplo,sisetieneaccesoaMicrosoftExcelyéstegeneraunerrorDivisiónporcero,MicrosoftExcelestableceráenErr.NumbersucódigodeerrorcorrespondienteyExcel.ApplicationenSource.
Algenerarunerrorenelcódigo,Sourceseráelidentificadorprogramáticodelaaplicación.Paramódulosdeclase,Sourcedebecontenerunnombreconelformatoproyecto.clase.Cuandoseproduceunerrorinesperadoensucódigo,lapropiedadSourceserellenaautomáticamente.Paraloserroresenmódulosestándar,Sourcecontieneelnombredeproyecto.Paraloserroresenunmódulodeclase,Sourcecontieneunnombreconelformatoproyecto.clase.
StartUpPosition(Propiedad)
DevuelveoestableceunvalorqueespecificalaposicióndeunUserFormcuandoapareceporprimeravez.
PuedeutilizarunodeloscuatrovaloressiguientesparaStartUpPosition:
Parámetro Valor DescripciónManual 0 Noseespecificavalorinicial.CenterOwner 1 Centradoenelelementoalqueperteneceel
UserForm.CenterScreen 2 Centradoenlapantalla.WindowsDefault 3 Colocadoenlaesquinasuperiorizquierdadela
pantalla.
Comentarios
PuedeestablecerlapropiedadStartUpPositionporprogramaodesdelaventanaPropiedades.
SubFolders(Propiedad)
Descripción
DevuelveunacolecciónFolderscompuestaportodaslascarpetascontenidasenunacarpetaespecificada,incluyendolasquetienenestablecidosatributosdearchivodelsistemayoculto.
Sintaxis
objeto.SubFolders
ElobjetoessiempreunobjetoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadSubFolders:
SubShowFolderList(folderspec)
Dimfs,f,f1,s,sf
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(folderspec)
Setsf=f.SubFolders
ForEachf1insf
s=s&f1.name
s=s&vbCrLf
Next
MsgBoxs
EndSub
TotalSize(Propiedad)
Descripción
Devuelveelespaciototal,enbytes,deunaunidadorecursocompartidodered.
Sintaxis
objeto.TotalSize
ElobjetoessiempreunobjetoDrive.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadTotalSize:
SubShowSpaceInfo(drvpath)
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
s="Unidad"&d.DriveLetter&":"
s=s&vbCrLf
s=s&"Tamañototal:"&FormatNumber(d.TotalSize
s=s&vbCrLf
s=s&"Disponible:"&FormatNumber(d.AvailableSpace/1024,0)&"Kbytes"
MsgBoxs
EndSub
Type(Propiedad)
Descripción
Devuelveinformaciónacercadeltipodeunarchivoocarpeta.Porejemplo,paralosarchivosqueterminenen.txt,sedevuelve"Documentodetexto".
Sintaxis
objeto.Type
ElobjetoessiempreunobjetoFileoFolder.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadTypeparadevolveruntipodecarpeta.Enesteejemplo,intenteproporcionaralprocedimientolarutadelaPapeleradereciclajeuotracarpetaúnica.
SubShowFileSize(filespec)
Dimfs,f,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(filespec)
s=UCase(f.Name)&"isa"&f.Type
MsgBoxs,0,"Informacióndeltipodelacarpeta"
EndSub
VolumeName(Propiedad)
Descripción
Estableceodevuelveelnombredelvolumendelaunidadespecificada.Lecturaoescritura.
Sintaxis
objeto.VolumeName[=nombreNuevo]
LapropiedadVolumeNameconstadelassiguientespartes:
Parte Descripciónobjeto Requerido.SiempreelnombredeunobjetoDrive.nombreNuevo Opcional.Siseproporciona,nombreNuevoeselnombrenuevo
delobjetoespecificado.
Comentarios
ElcódigosiguientedemuestralautilizacióndelapropiedadVolumeName:
SubShowVolumeInfo(drvpath)
Dimfs,d,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setd=fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
s="Unidad"&d.DriveLetter&":-"&d.VolumeName
MsgBoxs
EndSub
Boolean(Tipodedatos)
LasvariablestipoBooleansealmacenancomonúmerosde16bits(2bytes),perosólopuedenserTrueoFalse.LasvariablestipoBooleansepresentancomoTrueoFalse(cuandoseutilizaPrint)o#TRUE#o#FALSE#(cuandoseutilizaWrite#).UtilicelaspalabrasclaveTrueyFalseparaasignarunodelosdosestadosalasvariablestipoBoolean.
CuandoseconviertenatipoBooleanotrostiposnuméricos,0seconvierteenFalse,yelrestodelosvaloresseconviertenenTrue.CuandolosvalorestipoBooleanseconviertenaotrostiposdedatosnuméricos,Falseseconviertaen0
yTrueseconvierteen-1.
Byte(Tipodedatos)
LasvariablestipoBytesealmacenancomonúmerosde8bits(1byte)sencillossinsignoconunintervalodevaloresentre0y225.
EltipodedatosByteesútilparaalmacenardatosbinarios.
Currency(Tipodedatos)
LasvariablestipoCurrencysealmacenancomonúmerosde64bits(8bytes)enunformatodenúmeroenteroaescalade10.000paradarunnúmerodepuntofijocon15dígitosalaizquierdadelsignodecimaly4dígitosaladerecha.Estarepresentaciónproporcionaunintervalode-922.337.203.685.477,5808a922.337.203.685.477,5807.ElcarácterdedeclaracióndetipoparaCurrencyeselsigno@.
EltipodedatosCurrencyesútilparacálculosmonetariosyparacálculosdepuntofijo,enloscualeslaprecisiónesespecialmenteimportante.
Date(Tipodedatos)
LasvariablesdefechasealmacenancomonúmerosIEEEdesignoflotantede64bits(8bytes)quevandel1deenerodel100al31dediciembrede9999yhorariosde0:00:00a23:59:59.CualquiervalorreconocibledefechaliteralsepuedeasignaralasvariablestipoDate.Losliteralesdefechasedebenponerentrecaracteresdesignodenúmero(#).Porejemplo,#1Enero,1993#o#1Ene93#.
LasvariablestipoDatepresentanfechasdeacuerdoalformatodefechacortoreconocidoporsusistema.Lahorasepresentadeacuerdoalformatodehora
reconocidoporsusistema(12ó24horas).
CuandoseconviertenatipoDateotrosdatosdetiponuméricos,losvaloresalaizquierdadelsignodecimalrepresentanlainformacióndefecha,mientrasquelosvaloresaladerechadelsignodecimalrepresentanlahora.Medianochees0ymediodíaes0,5.Losnúmerosenterosnegativosrepresentanfechasanterioresal30dediciembrede1899.
Decimal(Tipodedatos)
Lasvariablesdecimalessealmacenancomoenterosconsignode96bits(12bytes)escaladosconunapotenciavariablede10.Lapotenciadelfactordeescalade10especificaelnúmerodedígitosquehayaladerechadelsignodecimalyvaríadesde0a28.Conunaescalade0(sindecimales),elmayorvalorposiblees+/-79.228.162.514.264.337.593.543.950.335.Con28posicionesdecimales,elmayorvalores+/-7,9228162514264337593543950335yelmenorvalordistintode0es+/-0,0000000000000000000000000001.
NotaEnestemomento,eltipodedatoDecimalsólosepuedeutilizarconunVariant,esdecir,nopuededeclararunavariabledetipoDecimal.Sinembargo,puedecrearuntipoVariantconsubtipoDecimalutilizandolafunciónCDec.
Double(Tipodedatos)
Lasvariablesdobles(puntoflotantededobleprecisión)sealmacenancomonúmerosIEEEdecomaflotantede64bits(8bytes)convaloresde-1.79769313486231E308a-4,94065645841247E-324paravaloresnegativosyde4,94065645841247E-324a1,79769313486232E308paravalorespositivos.ElcarácterdedeclaracióndetipoparaDoubleeselsignodenúmero(#).
Integer(Tipodedatos)
LasvariablesIntegersealmacenancomonúmerosde16bits(2bytes)convaloresquevande-32.768a32.767.ElcarácterdedeclaracióndetipoparaeltipoIntegereselsignodeporcentaje(%).
LasvariablestipoIntegertambiénsepuedenutilizarpararepresentarvaloresenumerados.Unvalorenumeradopuedecontenerunconjuntofinitodenúmerosenterosúnicos,cadaunodeloscualestieneunsignificadoespecialenelcontextoenelqueseutiliza.Losvaloresenumeradosproporcionanunaformacómodadeseleccionarentreunnúmeroconocidodeopciones.Porejemplo,
cuandosepreguntaalusuarioqueelijauncolordeunalista,sepodríatener0=negro,1=blancoyasísucesivamente.EsunabuenaprácticadeprogramacióndefinirconstantesutilizandolainstrucciónConstparacadavalorenumerado.
Long(Tipodedatos)
LasvariablesLong(enteroslargos)sealmacenancomonúmerosconsignode32bits(4bytes)conunvalorcomprendidoentre-2.147.483.648y2.147.483.647.ElcarácterdedeclaracióndetipoparaLongeselsigno&.
Object(Tipodedatos)
LasvariablesObjectsealmacenancomodireccionesde32bits(4bytes)quehacenreferenciaaobjetos.AlutilizarlainstrucciónSet,unavariabledeclaradacontipoObjectpuedetenerasignadocualquierreferenciaaunobjeto.
NotaAunqueunavariabledeclaradaconuntipoObjecteslosuficientementeflexiblecomoparacontenerunareferenciaacualquierobjeto,enlazarconelobjetoreferenciadopordichavariableesunprocesolento(enlaceentiempodeejecución).Paraforzarelenlacetemprano(enlaceentiempodecompilación),sepuedeasignarlareferenciadelobjetoaunavariabledeclaradaconunnombrede
claseespecífico.
Single(Tipodedatos)
LasvariablesSingle(puntoflotantedeprecisiónsimple)sealmacenancomonúmerosIEEEdecomaflotantede32bits(4bytes)convaloresquevande-3,402823E38a-1,401298E-45paravaloresnegativosyde1,401298E-45a3,402823E38paravalorespositivos.ElcarácterdedeclaracióndetipoparaSingleeselsignodeexclamación(!).
String(Tipodedatos)
Haydosclasesdecadenas:cadenasdelongitudvariableycadenasdelongitudfija.
Lascadenasdelongitudvariablepuedencontenerhasta2.000millonesdecaracteres(2^31).
Lascadenasdelongitudfijaquepuedencontenerde1a64KB(2^16)caracteres.NotaNosepuedeusarunacadenaPublicdelongitudfijaenunmódulodeclase.
LoscódigosparacaracteresdetipoStringvaríandesde0a255.Losprimeros128caracteres(0–127)deljuegodecaracterescorrespondenalasletrasylossímbolosdeuntecladoestándardeEE.UU.Estosprimeros128caracteressonlosmismosquelosdefinidosporeljuegodecaracteresASCII.Lossiguientes128caracteres(128–255)representancaracteresespeciales,comoletrasdealfabetosinternacionales,acentos,símbolosdemonedayfracciones.ElcarácterdedeclaracióndetipoparaStringeselsignodedólar($).
Tipodedatosdefinidoporelusuario
CualquiertipodedatosquedefinautilizandolainstrucciónType.Lostiposdedatosdefinidosporelusuariopuedencontenerunoomáselementosdecualquiertipodedatos,dematriz,odeuntipopreviamentedefinidoporelusuario.Porejemplo:
TypeMiTipo
MiNombreAsString'LavariabletipoStringalmacenaunnombre.
MiFechaNacimientoAsDate'LavariabletipoDatealmacenaunafechadenacimiento.
MiSexoAsInteger'LavariableIntegeralmacenaelsexo(0para
EndType'mujer,1parahombre).
Variant(Tipodedatos)
Varianteseltipodedatosparatodaslasvariablessinosedeclaranexplícitamentecomodealgúnotrotipo(utilizandoinstruccionescomoDim,Private,PublicoStatic).EltipodedatosVariantnotieneuncarácterdedeclaracióndetipo.
Variantesuntipodedatosespecialquepuedecontenercualquierclasededatosexceptodatosdecadenadelongitudfija(lostiposVariantadmitenahoratiposdefinidosporelusuario.)VarianttambiénpuedecontenerlosvaloresespecialesEmpty,Error,NothingyNull.PuededeterminarlaformaenquedeseatratarlosdatostipoVariantutilizandolasfuncionesVarTypeoTypeName.
Losdatosnuméricospuedensercualquiernúmeroenteroorealentre-1,797693134862315E308y-4,94066E-324paralosvaloresnegativos,yentre4,94066E-324y1,797693134862315E308paralosvalorespositivos.Generalmente,losdatostipoVariantnuméricosseconservanensutipodedatosoriginaldentrodeuntipoVariant.Porejemplo,siasignauntipoIntegerauntipoVariant,lasoperacionesposteriorestrataneltipoVariantcomosifuerauntipoInteger.Noobstante,sirealizaunaoperaciónaritméticaenuntipoVariantquecontengauntipodedatosByte,Integer,Long,oSingle,yelresultadosuperaelintervalonormaldeltipodedatosoriginal,elresultadosepromocionadentrodeltipoVarianthastaeltipodedatosmayorsiguiente.UntipoBytesepromocionaauntipoInteger,untipoIntegerauntipoLong,yuntipoLongyuntipoSinglesepromocionanauntipoDouble.SeproduceunerrorcuandolasvariablestipoVariantquecontienenvalorestipoCurrency,Decimal,yDouble
superansusintervalosrespectivos.
PuedeutilizareltipodedatosVariantenlugardecualquierotrotipodedatosparatrabajarconlosdatosdeunamaneramásflexible.SielcontenidodeunavariabletipoVariantestáformadopordígitos,puedenserlarepresentacióndecadenadelosdígitososuvalorreal,dependiendodelcontexto.Porejemplo:
DimMiVarAsVariant
MiVar=98052
Enelejemploanterior,MiVarcontieneunarepresentaciónnumérica,elvalorreal98052.LosoperadoresaritméticosfuncionandelamaneraesperadaenlasvariablestipoVariantquecontienenvaloresnuméricosodatosdecadenaquesepuedeninterpretarcomonúmeros.Siutilizaeloperador+paraagregarMiVaraotravariabletipoVariantquecontieneunnúmero,oaunavariabledeuntiponuméricos,elresultadoesunasumaaritmética.
ElvalorEmptyindicaunavariabletipoVariantquenosehainicializado(alaquenosehaasignadounvalorinicial).UnavariabletipoVariantquecontengaEmptyseconsidera0siseutilizaenuncontextonuméricoyunacadenadelongitudcero("")siseutilizaenuncontextodecadenas.
NoconfundaEmptyconNull.NullindicaquelavariabletipoVariantintencionadamentenocontieneningúndatoválido.
EnuntipoVariant,Erroresunvalorespecialutilizadoparaindicarquesehaproducidounacondicióndeerrorenunprocedimiento.Noobstante,adiferenciadeotrostiposdeerrores,noseproduceelcontroldeerroresnormalaniveldeaplicación.Estopermitealusuario,oalapropiaaplicación,seleccionarentrevariasaccionesalternativasbasándoseenelvalordeerror.LosvaloresErrorsecreanconvirtiendonúmerosrealesavaloresdeerrormediantelafunciónCVErr.
CallType(constantes)
Lassiguientesconstantespuedenutilizarseencualquierpattedelcódigoenlugardelosvaloresactuales:
Constante Valor DecripciónvbMethod 1 Indicaqueunmétodoha
sidollamado.vbGet 2 Indicaunprocedimiento
PropertyGet.vbLet 4 Indicaunprocedimiento
PropertyLet.vbSet 8 Indicaunprocedimiento
PropertySet.
Constantesdeformulario
Lassiguientesconstantespuedenutilizarseencualquierpattedelcódigoenlugardelosvaloresactuales:
Constante Valor DecripciónvbModeless 0 UserFormesnomodal.vbModal 1 UserFormesmodal
(predeterminado).
ValoresderetornodeCStr
Siexpresiónes CStrdevuelveBoolean UnacadenaquecontieneTrueoFalseDate Unacadenaquecontieneunafechaenelformatodefecha
cortadesusistemaNull UnerrorentiempodeejecuciónEmpty Unacadenadelongitudcero("")Error UnacadenaquecontienelapalabraErrorseguidadel
númerodeerrorOtronúmero Unacadenaquecontieneelnúmero
Enum(Instrucción)
Declarauntipoparaunaenumeración.
Sintaxis
[Public|Private]Enumnombre
nombre_miembro[=expresión_constante]
nombre_miembro[=expresión_constante]
...
EndEnum
LainstrucciónEnumconstadelassiguientespartes:
Parte DescripciónPublic Opcional.EspecificaqueeltipoEnumesvisibleatravés
delproyecto.EltipoEnumesPublicdemanerapredeterminada.
Private Opcional.EspecificaqueeltipoEnumesvisiblesólodentrodelmóduloenelqueaparece.
nombre Requerido.ElnombredeltipodeEnum.ElnombredebeserunidentificadorválidodeVisualBasicyse
especificacomoeltipocuandosedeclaranvariablesoparámetrosdeltipoEnum.
Nombre_miembro Requerido.UnidentificadorválidodeVisualBasicqueespecificaelnombreporelcualseconoceráunelementoconstituyentedeltipodeEnum.
Expresión_constante Opcional.Valordelelemento(evalúaparaunLong).Sinoseespecificaconstantexpression,elvalorasignadoescerozero(sieselprimermembername),o1mayorqueelvalordelmembernameinmediatamenteanterior.
Comentarios
LasvariablesdeenumeraciónsonvariablesdeclaradasconuntipoEnum.TantolasvariablescomolosparámetrospuedendeclararseconuntipodeEnum.LoselementosdeltipodeEnumseinicializanalosvaloresdeconstantesdentrodelainstrucciónEnum.Losvaloresasignadosnosepuedenmodificarentiempodeejecuciónypuedenincluirvalorespositivosynegativos.Porejemplo:
EnumSecurityLevel
IllegalEntry=-1
SecurityLevel1=0
SecurityLevel2=1
EndEnum
UnainstrucciónEnumsólopuedeaparecerenelniveldemódulo.UnavezdefinidoeltipodeEnum,puedeutilizarseparadeclararvariables,parámetrosoprocedimientosquedevuelvansutipo.NopuedecualificarelnombredeuntipoEnumconunnombredemódulo.LostiposPublicEnumdeunmódulodeclasenosonmiembrosdelaclase;sinembargo,seescribenenlabibliotecadetipos.LostiposEnumdefinidosenmódulosestándarnoseescribenenbibliotecasdetipos.LostiposPublicEnumdelmismonombrenosepuedendefinirenmódulosestándaryenmódulosdeclase,yaquecompartenelmismoespaciodenombres.CuandodostiposEnumdedistintasbibliotecasdetipostienenelmismonombreperodistintoselementos,unareferenciaaunavariabledeltipodependedelabibliotecadetiposquetengamayorprioridadenReferences.
NopuedeutilizaruntipoEnumcomodestinoenunbloqueWith.
Event(Instrucción)
Declarauneventodefinidoporelusuario.
Sintaxis
[Public]Eventnombre_procedimiento[(lista_argumentos)]
LainstrucciónEventconstadelassiguientespartes:
Parte DescripciónPublic Opcional.EspecificaqueEventseavisibleatravésdel
proyecto.LostiposEventssonPublicdeformapredeterminada.Tengaencuentaqueloseventossolamentepuedenserconducidosenelmóduloenelquesedeclaran.
nombre_procedimiento
Requerido.Nombredelevento;siguelasconvencionesestándardenombresdevariables.
Elargumentolista_argumentosconstadelasiguientessintaxisypartes:
[ByVal|ByRef]nombre_variable[()][Astipo]
Parte DescripciónByVal Opcional.Indicaqueelargumentosepasaporvalor.ByRef Opcional.Indicaqueelargumentosepasaporreferencia.
ByRefeslaopciónpredeterminadaenVisualBasic.nombre_variable
Requerido.Nombredelavariablequerepresentaelargumentoquesepasaalprocedimiento;siguelasconvencionesestándardenombresdevariables.
tipo Opcional.Eltipodedatosdelargumentoquesepasaalprocedimiento;puedeserByte,Boolean,Integer,Long,Currency,Single,Double,Decimal(noaceptadoactualmente),Date,String(sólodelongitudvariable),Object,Variant,untipodefinidoporelusuario,ountipodeobjeto.
Comentarios
Unavezdeclaradoelevento,utilicelainstrucciónRaiseEventparadesencadenarlo.SeproduciráunerrordesintaxissiunadeclaraciónEventapareceenunmóduloestándar.Uneventonosepuededeclararparadevolverunvalor.Uneventotípicopodríadeclararseydesencadenarsecomosemuestraenlossiguientesfragmentosdecódigo:
'Declarauneventoaniveldemódulodeunmódulodeclase
EventLogonCompleted(UserNameasString)
Sub
RaiseEventLogonCompleted("AntonioJara")
EndSub
NotaPuededeclararargumentosdeeventossolamenteparahacerargumentosdeprocedimientos,conlasexcepcionessiguientes:loseventosnopuedentenerargumentosconnombre,argumentosOptional,oargumentosParamArray.Loseventosnodevuelvenvalores.