Anda di halaman 1dari 6

Comando DIR

Devuelve un valor String que representa el nombre de un archivo, de un directorio o de una carpeta que coincide
con un modelo especificado o atributo de archivo, o con la etiqueta de volumen de una unidad.
Sintaxis
Dir[(nombreruta [, atributos] )]
La sintaxis de la funcin Dir tiene los siguientes argumentos:
Argument
o Descripcin
nombreru
ta
Opcional. Expresin de cadena (expresin de cadena: expresin que evala una secuencia de caracteres
contiguos. Los elementos de la expresin pueden ser: funciones que devuelven una cadena o un tipo
Variant (VarType ! de cadena" un tipo literal# constante# varia$le o Variant de cadena.! que especi%ca un
nom$re de arc&ivo" puede incluir un directorio o carpeta# y una unidad. 'e devuelve una cadena de longitud
cero (((! si no se encuentra nombreruta.
atributos Opcional. )onstante (constante: valor que no &a sido calculado y que# por tanto# no var*a. +or e,emplo# el
nmero -./ y el texto (0ngresos trimestrales( son constantes. Las expresiones# o los valores resultantes de
ellas# no son constantes.! o expresin num1rica (expresin num1rica: cualquier expresin que da como
resultado un nmero. +uede ser cualquier com$inacin de varia$les# constantes# funciones y operadores.!#
cuya suma especi%ca los atri$utos del arc&ivo. 'i se omite# devuelve los arc&ivos que coinciden con
nombreruta pero sin atri$utos.
Valores
Los valores del argumento (argumento: valor que proporciona informacin a una accin, un evento, un mtodo, una
propiedad, una funcin o un procedimiento.! atributos son los siguientes:
Constante Valor Descripcin
vbNormal / (+redeterminado! Especi%ca arc&ivos sin atri$utos.
vbReadOn
ly
. Especi%ca arc&ivos de slo lectura adem2s de arc&ivos sin atri$utos.
vbHidden - Especi%ca arc&ivos ocultos adem2s de arc&ivos sin atri$utos.
VbSystem 3 Especi%ca arc&ivos de sistema adem2s de arc&ivos sin atri$utos. 4o est2 disponi$le en
5acintos&.
vbVolume Especi%ca una etiqueta de volumen" si se especi%ca algn otro atri$uto# se omite vbVolume. 4o
est2 disponi$le en 5acintos&.
vbDirector
y
.6 Especi%ca directorios o carpetas adem2s de arc&ivos sin atri$utos.
vbAlias 63 El nom$re de arc&ivo especi%cado es un alias. 7isponi$le slo en 5acintos&.
E,emplo:
'u$ 7irectorio(!
7im carpeta 8s 'tring
carpeta 9 ()::carpeta:(
%c&ero 9 7ir(carpeta ; (<.<(!
0f %c&ero 9 (( T&en
Exit 'u$
Else
.
7o =ntil %c&ero 9 ((
8ctive)ell 9 %c&ero
8ctive)ell.O>set(.# /!.'elect
%c&ero 9 7ir
Loop
End 0f
End 'u$
Comando OPEN
"l #$"% nos hace posible crear&abrir un archivo de texto, para luego proceder a escribir a este archivo.
'a( tres modos:
Output
)brir (o crear! el archivo (suprime todo (a grabado! para escribir. "s decir que, si el archivo existe, borrar*
todo los datos (a grabados.
"+emplo: Open strArchivoTexto For Output As #f.
Append
)brir (o crear! para escribir (seguir por la ,ltima l-nea!.
"+emplo: Open strArchivoTexto For Append As #f.
Input
)brir para lectura (a "xcel!.
"+emplo: Open strArchivoTexto For Input As #f.
.obre la /#f/: $ara traba+ar con el contenido de estos archivos ha( que llamar a los archivos de una manera
numrica. .i utili0amos el 12""13L", no habr* que preocuparse de esta numeracin.
Comando PRINT
"l $23%4 se emplea para la forma sequencial (posiciones fi+as! 5 /tal como est*/. "n los e+emplos aba+o
utili0aremos el comando $23%4.
"+emplo: Print #f, "Fecha de hoy: " & Date
Comando WRITE
"l 6234" se utili0a para la forma sequencial 7.8 (7omma .eparated 8alue 9 8alor separado por coma!. "sto
significa que a:adir* una coma entre cada bloque de texto. "sto a(uda a la hora de importar un archivo )scii a
"xcel.
"+emplo: Print #f, "Fecha de hoy: " & Date ; " Appication!"ser#a$e
7ada bloque de texto se delimita del prximo por el car*cter /;/.
Escribir archivo Ascii - OUTPUT
Sub Crear_Escribir_ArchivoAscii()
Dim strNombreArchivo, strRuta, strArchivoTexto As String
Dim f As Integer
nombre ! ruta "e# archivo "e texto
-
strNombreArchivo $ %&iArchivoAscii'txt%
strRuta $ %C()%
strArchivoTexto $ strRuta * strNombreArchivo
abrimos e# archivo +ara escribir
f $ ,ree,i#e
-+en strArchivoTexto ,or -ut+ut As .f
escribimos a# archivo
/rint .f, %,echa "e ho!( % * Date
/rint .f, %0suario( % * A++#ication'0serName
cerramos e# archivo "e texto
C#ose f
En" Sub
Escribir archivo Ascii - APPEND
Sub Crear_Escribir_ArchivoAscii()
Dim strNombreArchivo, strRuta, strArchivoTexto As String
Dim f As Integer
nombre ! ruta "e# archivo "e texto
strNombreArchivo $ %&iArchivoAscii'txt%
strRuta $ %C()%
strArchivoTexto $ strRuta * strNombreArchivo
abrimos e# archivo +ara escribir
f $ ,ree,i#e
-+en strArchivoTexto ,or A++en" As .f
escribimos a# archivo
/rint .f, %,echa "e ho!( % * Date
/rint .f, %0suario( % * A++#ication'0serName
cerramos e# archivo "e texto
C#ose f
En" Sub
Leer archivo Ascii - INPUT
Sub 1eer_ArchivoAscii()
Dim strNombreArchivo, strRuta, strArchivoTexto As String
Dim f, i As Integer
Dim strTexto As String
nombre ! ruta "e# archivo "e texto
strNombreArchivo $ %&iArchivoAscii'txt%
strRuta $ %C()%
strArchivoTexto $ strRuta * strNombreArchivo
abrimos e# archivo +ara #ectura
f $ ,ree,i#e
-+en strArchivoTexto ,or In+ut As .f
#eemos e# archivo "e texto a co#umna "e Exce#
i $ 2
3hi#e Not E-,(f)
1ine In+ut .f, strTexto
Ce##s(i, 2) $ strTexto
i $ i 4 2
3en"
?
cerramos e# archivo "e texto
C#ose f
En" Sub
Abrir archivo de texto en Excel sin dividir en colmnas
"ste cdigo de+a al usuario elegir el archivo a abrir, ( luego se abre el archivo de texto en "xcel. %o divide en
columnas, todos los datos permanecer*n en la columna ). Los delimitadores quedan intactos.
Sub AbrirEnCo#umna0nica()
abre un archivo "e texto en #a co#umna A
5sin "ivi"ir en co#umnas6
"imensiones
Dim strNombreArchivo
"i7#ogo +ara abrir archivo
strNombreArchivo $ A++#ication'8et-+en,i#ename
If strNombreArchivo $ ,a#se Then Exit Sub
abre e# archivo en #a co#umna A
3or9boo9s'-+enText _
,i#ename($strNombreArchivo, _
-rigin($x#3in"o:s, _
StartRo:($2, _
,ie#"Info($Arra!(2, 2)
En" sub
Abrir archivo de texto en Excel! " dividir el contenido en colmnas
"n el segundo e+emplo abriremos el archivo de texto en "xcel, ( procedemos a dividir el contenido en
columnas, dependiendo del delimitador elegido. Los delimitadores desaparecer*n.
Sub Abrir!Divi"irEnComumnas()
'abre un archivo de texto en Excel, divide en columnas
'hay que poner el tipo de delimitador (en este caso 'S+ace')
'dimensiones
Dim strNombreArchivo
'dilogo para abrir archivo
strNombreArchivo Application!"et#pen$ilename
%& strNombreArchivo $alse 'hen Exit (ub
'abrir el archivo y dividir en columnas
)or*boo*s!#pen'ext +
$ilename,strNombreArchivo, +
#rigin,xl)indo-s, +
(tart.o-,/, +
Data'ype,xlDelimited, +
'ext0uali&ier,xlDouble0uote, +
1onsecutiveDelimiter,$alse, +
'ab,$alse, +
(emicolon,$alse, +
1omma,$alse, +
(pace,True, +
#ther,$alse, +
$ield%n&o,Array(/, /)
En" Sub
Archivos
Exportar e importar
3
Option Explicit
'u$ Export@ange(!
7im Ailename 8s 'tring
7im 4um@oBs 8s Long# 4um)ols 8s 0nteger
7im r 8s Long# c 8s 0nteger
7im 7ata
7im Exp@ng 8s @ange
'et Exp@ng 9 8pplication.0ntersect('election# 8ctive'&eet.=sed@ange!
4um)ols 9 Exp@ng.)olumns.)ount
4um@oBs 9 Exp@ng.@oBs.)ount
Ailename 9 8pplication.7efaultAile+at& ; (:7atosExportados.csv(
Open Ailename Aor Output 8s C.
Aor r 9 . To 4um@oBs
Aor c 9 . To 4um)ols
7ata 9 Exp@ng.)ells(r# c!.Value
0f 0s4umeric(7ata! T&en 7ata 9 Val(7ata!
0f 0sEmpty(Exp@ng.)ells(r# c!! T&en 7ata 9 ((
0f c DE 4um)ols T&en
Frite C.# 7ata"
Else
Frite C.# 7ata
End 0f
4ext c
4ext r
)lose C.
5sgGox Exp@ng.)ount ; ( @ango exportado a ( ; Ailename# v$0nformation
End 'u$
'u$ 0mport@ange(!
7im 0mp@ng 8s @ange
7im Ailename 8s 'tring
7im r 8s Long# c 8s 0nteger
7im txt 8s 'tring# )&ar 8s 'tring < .
7im 7ata
7im i 8s 0nteger

'et 0mp@ng 9 8ctive)ell
On Error @esume 4ext
Ailename 9 8pplication.7efaultAile+at& ; (:7atosOrigen.csv(
Open Ailename Aor 0nput 8s C.
0f Err DE / T&en
5sgGox (4ot found: ( ; Ailename# v$)ritical# (E@@O@(
Exit 'u$
End 0f
r 9 /
c 9 /
txt 9 ((
8pplication.'creen=pdating 9 Aalse
7o =ntil EOA(.!
Line 0nput C.# 7ata
Aor i 9 . To Len(7ata!
)&ar 9 5id(7ata# i# .!
0f )&ar 9 (#( T&en Hcomma
I
8ctive)ell.O>set(r# c! 9 txt
c 9 c J .
txt 9 ((
Else0f i 9 Len(7ata! T&en Hend of line
0f )&ar DE )&r(?3! T&en txt 9 txt ; )&ar
8ctive)ell.O>set(r# c! 9 txt
txt 9 ((
Else0f )&ar DE )&r(?3! T&en
txt 9 txt ; )&ar
End 0f
4ext i
c 9 /
r 9 r J .
Loop
)lose C.
8pplication.'creen=pdating 9 True
End 'u$
Aunction 7efaultAile+at&(!
7efaultAile+at& 9 8pplication.7efaultAile+at&
End Aunction
Otros
'u$ crearKdirectorio(!
5L7ir ():Mdirecto(
End 'u$
'u$ eliminar(!
@m7ir (directo(
End 'u$
'u$ arc&ivo(!
Open ():M+@=EG8.txt( Aor Output 8s C.
End 'u$
'u$ copiar(!
Aile)opy ():M+rue$a.txt(# (7:M+rue$a.txt(
End 'u$
'u$ elimna8rc&ivo(!
Nill ((7:M+rue$a.txt(!
End 'u$
6