La Web del Programador: Comunidad de Programadores
 
    Pregunta:  56076 - EXTRAER INFORMACION ARCHIVOS .DOC
Autor:  JUan HOughton
QUe tal gente, puse esta pregunta aca por que realmente no se en que lenguaje ubicarla y es la siguiente, tengo algo asi como 15 gigas de archivos .doc y en la oficina necesitamos organizarlas, pero de cada archivo nada mas necesitamos las 2 primeras paginas, realmente no queremos hacerlo manual por el tiempo que invertiriamos seria muy grande, si alguien tiene una idea de con que lenguaje o alguna rutina que nos sirva, les quedariamos muy agradecidos muchisimas gracias de antemanos alos que se tomaron el tiempo para leer esto

  Respuesta:  Ulises Ramiro Santana Maruri
Estimado Juan;
Espero te sirva este código.
1. Copia algunos documentos en una carpeta para probar con ellos y no le demos mate a información importante.
2. Abre word y selecciona la barra de herramientas de visualbasic.
3. Abre el editor de visualbasic; inserta un modulo y copia el siguiente código:

Sub EliminaraPartirPag3()
' Macro grabada el 25/06/2009 por Ulises
Dim RutaFolder As String, Respuesta As String
Dim i As Integer

'Esta es la ruta donde se encuentran tus archivos de word
RutaFolder = InputBox("Ingresa la Ruta del Directorio a procesar", "Solicitud de Datos")

Application.ScreenUpdating = False

With Application.FileSearch
.LookIn = RutaFolder
.SearchSubFolders = True
' Aquí se especifica el tipo de documentos que va a buscar
.FileName = "*.doc"
If .Execute() > 0 Then
' Este es el ciclo que llevará a cabo la búsqueda y eliminación de cada documento.
For i = 1 To .FoundFiles.Count
Ruta = .FoundFiles(i)
'Abrir el primer archivo
Documents.Open FileName:=Ruta, ConfirmConversions:= _
False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
' Se va directo a la página 3
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="3"
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Forward = True
.Wrap = wdFindContinue
End With
' seleccionea el contenido de la página 3 hasta la última
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
' Elimina la información
Selection.Delete Unit:=wdCharacter, Count:=1
' Guarda el documento
ActiveDocument.Save

' Va por el siguiente archivo y repite el ciclo
Next i

Else
Application.ScreenUpdating = True
MsgBox "No se encontraron archivos"
End If
End With
Application.ScreenUpdating = True
Respuesta = MsgBox("Proceso para depurar documentos word terminado", vbExclamation, "Mensaje de la Macro")
End Sub

4. Guarda el módulo.
5. Regresa a word y cierra el documento activo.
6. Pulsa simultáneamente "Alt + F8" y te aparece un cuadro de diálogo donde te muestra los nombres de las macros existentes. Selecciona EliminaraPartirPagina3.
7. Una vez terminado el proceso valida la información de cada archivo de la carpeta de pruebas.

Espero te sirva.

  Respuesta:  eider mauricio aristizabal erazo
eso es posible con el uso del lenguaje de programacion VBA (Visual Basic for Applications) abris word presionas las teclas Alt + F11 esto abre el entorno de desarrollo, la idea es que crees una macro que lee todos los ficheros .doc del directorio y extraiga las 2 primeras hojas y las vaya colocando en un nuevo documento!

Bye Salu2.