VB captura imágenes en carpetas
¿Opción?Base?1?
¿Dim?fs?
¿Dim?f?
¿Dim?fd?
¿Público?¿Tipo?picFile?
¿Nombre completo?¿Como?Cadena?
¿Fecha de creación?¿Como?Fecha?
'¿LaseModified?¿Como?Fecha?
¿Fin?Tipo?
¿Dim?iCount?As?Integer?
¿Dim?arrPics()?¿Como?picFile?
Sub ?test()?
Dim?sf?As?String?
sf?=?InputBox("¿En qué carpeta quieres encontrar la imagen?"?amp;? vbCrLf ?amp;?"Ingrese la ruta completa a continuación:",?"prompt")?'¿Obtener la carpeta ingresada por el usuario?
If?Right(sf,?1)?lt;gt ;?"\"?Entonces?sf?=?sf?amp;?"\"?
¿Establecer?fs?=?CreateObject("Scripting.FileSystemObject")?
'¿Comprobar la validez de la entrada del usuario?
¿Activado?¿Error?¿Reanudar?¿Siguiente?
¿Establecer?fd?=?fs.GetFolder(sf)?
¿En?Error?¿Ir a?0?
¿Si?fd?¿Es?¿Nada?¿Entonces?
¿MsgBox?"Error de entrada"?
¿Salir?Sub?
¿Fin?Si?
GetPictures?sf,?True?' Este proceso colocará la ruta completa y la fecha de creación de todos los archivos jpg, gif y bmp de la carpeta en arrPics. En la matriz, el primer parámetro especifica la ruta de la carpeta y el segundo parámetro especifica si se deben buscar subdirectorios.
¿Ordenar?arrPics?' >Dim?shp?
lLeft?=?Cells(1,?1).Width?2?
For?i?=?1?To?UBound(arrPics) ?'¿Insertar imágenes en la hoja de trabajo por turnos, una imagen por fila?
¿Set?shp?=?ActiveSheet.Pictures.Insert(arrPics(i).FullName)?
Celdas (i,?1)?=?arrPics(i).FullName?
If?shp.Height?lt;=?389.5?Then?' Porque la altura de la fila es de hasta 409,5 puntos, si es necesario ¿Quieres reducir el tamaño de la imagen?
Filas(i).RowHeight?=?shp.Height?20?
Else?
Filas( i).RowHeight ?=?409.5?
shp.Width?=?shp.Width?*?389.5?/?shp.Height?
shp.Height?=?389.5 ?
¿Fin?Si?
shp.Left?=?Cells(i,?2).Left?10?
shp.Top?= ?Celdas(i ,?2).Arriba? ?10?
¿Siguiente?
Establecer?pic?=?
¿Nada?
¿Establecer?f?=?Nada?
¿Establecer?fd?=?Nada?
Establecer?fs?=?Nada?
¿Fin?Sub?
Sub?GetPictures(sFolder?As?String,?IncludeSubfolders?As?Boolean)?
Para?Cada?f?In?fs. GetFolder(sFolder).Archivos?
If?InStr("jpg|gif|bmp",?Right(LCase(f.Name),?3))?gt;?0?Then? p>
¿Si?iCount?=?0?Entonces?
¿ReDim?Preserve?arrPics(1)?¿As?picFile?
¿Else?
ReDim?Preserve?arrPics(iCount? ?1)?As?picFile?
¿Fin?If?
iCount?=?iCount?1?
arrPics(iCount).FullName?=?f.Path?
arrPics(iCount).DateCreated?=?f.DateCreated?
¿Fin?Si?
¿Hacer eventos?
¿Siguiente?
¿Si?¿Incluir subcarpetas?¿Entonces?
¿Para?Cada?fd?En?fs.GetFolder(sFolder).¿SubCarpetas?
¿Obtener imágenes?fd.Path,?Incluir subcarpetas?
¿Siguiente?
¿Fin?Si?
¿Fin?Sub?
¿Sub?Sort(arr()?¿Como?picFile)?
¿Dim?tmpFile?As?picFile?
Para?i?=?LBound(arr()) )?A?UBound(arr())?
Para?j?=?i?1?A?UBound(arr())?
Si?arr(j ).FechaCreación?gt;?arr(i).FechaCreación?Entonces?
tmpFile?=?arr(j)?
arr(j)?=?arr(i) ?
arr(i)?=?tmpFile?
¿Fin?Si?
¿Siguiente?
¿Siguiente?
¿Fin?Sub