Herramientas de usuario

Herramientas del sitio


visual_basic_office:principal

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
visual_basic_office:principal [2023/05/17 16:57] – [Sentencias útiles] albertovisual_basic_office:principal [2023/05/17 17:06] (actual) – [Manejo de errores] alberto
Línea 191: Línea 191:
  
 ===== Word ===== ===== Word =====
 +==== Macros en Word ====
 Para manejar datos de un documento Word, primero debemos crear una instancia del documento. Para manejar datos de un documento Word, primero debemos crear una instancia del documento.
 <code vbnet> <code vbnet>
Línea 200: Línea 201:
 === Extraer el número total de páginas de un documento === === Extraer el número total de páginas de un documento ===
 <code vbnet> <code vbnet>
 +Dim doc As Document
 Dim totalPaginas As Integer Dim totalPaginas As Integer
 +
 +Set doc = ActiveDocument
 totalPaginas = doc.ComputeStatistics(wdStatisticPages) totalPaginas = doc.ComputeStatistics(wdStatisticPages)
 </code> </code>
Línea 206: Línea 210:
 === Guardar un documento o parte de él en PDF === === Guardar un documento o parte de él en PDF ===
 <code vbnet> <code vbnet>
 +Dim doc As Document
 Dim nombreArchivo As String Dim nombreArchivo As String
 Dim ruta As String Dim ruta As String
 Dim totalPaginas As Integer Dim totalPaginas As Integer
 +
 +Set doc = ActiveDocument
  
 nombreArchivo = "mi_documento.pdf" nombreArchivo = "mi_documento.pdf"
Línea 217: Línea 224:
 doc.ExportAsFixedFormat OutputFilename:=ruta & nombreArchivo, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=1, To:=totalPaginas, Item:=wdExportDocumentContent doc.ExportAsFixedFormat OutputFilename:=ruta & nombreArchivo, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=1, To:=totalPaginas, Item:=wdExportDocumentContent
 </code> </code>
 +
 +
 +==== Manejo de errores ====
 +En ocasiones es necesario evitar que se detenga la ejecución del programa si se detecta un error.\\
 +Para ello usamos la sentencia
 +<code vbnet>
 + On Error Resume Next
 +</code>
 +
 +De modo que si se produce un error a continuación,la ejecución del programa continúa, y podremos manejar este error con la sentencia:
 +<code vbnet>
 + If Err.Number <> 0 Then ' Si es 0 es que no se ha producido error. También podría ponerse "= 'nº error' "
 +        Set ExcelApp = CreateObject("Excel.Application")
 + End If
 +</code>
 +
 +Para restablecer el manejo normal de errores, se utiliza la sentencia: 
 +<code vbnet>
 + On Error GoTo 0
 +</code>
 +
 +En el siguiente apartado se puede ver un ejemplo práctico al instanciar en Word elementos Excel.
  
 ==== Trabajar con Excel desde Word ==== ==== Trabajar con Excel desde Word ====
-Para trabajar con un Documento Excel desde Word, primero hay que fijar la instancia de Excel con la que se va a trabajar. \\ +Para trabajar con un Documento Excel desde Word, primero hay que fijar las instancias de los objetos de Excel con la que se va a trabajar. \\ 
-Si no está abierto Excel, se producirá un error. En el siguiente código evitamos que se detenga la ejecución del programa por este motivo, de modo que si éste ocurre, se cree una nueva instancia. Se volverá a retomar el manejo normal de errores en la sentencia " On Error GoTo 0"+Si no está abierto Excel, se producirá un error. En el siguiente código evitamos que se detenga la ejecución del programa por este motivo, de modo que si éste ocurre, se cree una nueva instancia. Se volverá a retomar el manejo normal de errores a partir de la sentencia "On Error GoTo 0"
 <code vbnet> <code vbnet>
 Function LeerValorCeldaExcel(ByVal RutaArchivo As String, ByVal NombreHoja As String, ByVal Fila As Integer) As Variant Function LeerValorCeldaExcel(ByVal RutaArchivo As String, ByVal NombreHoja As String, ByVal Fila As Integer) As Variant
Línea 261: Línea 290:
 End Function End Function
 </code> </code>
 +
 +Hay que tener en cuenta que hay que cerrar las instancias abiertas para prevenir problemas de memoria.
visual_basic_office/principal.1684335441.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki