visual_basic_office:principal
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| visual_basic_office:principal [2023/05/17 16:57] – [Sentencias útiles] alberto | visual_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) | ||
| </ | </ | ||
| 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 = " | nombreArchivo = " | ||
| Línea 217: | Línea 224: | ||
| doc.ExportAsFixedFormat OutputFilename: | doc.ExportAsFixedFormat OutputFilename: | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ==== 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 | ||
| + | </ | ||
| + | |||
| + | De modo que si se produce un error a continuación, | ||
| + | <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(" | ||
| + | End If | ||
| + | </ | ||
| + | |||
| + | Para restablecer el manejo normal de errores, se utiliza la sentencia: | ||
| + | <code vbnet> | ||
| + | On Error GoTo 0 | ||
| + | </ | ||
| + | |||
| + | 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 | + | Para trabajar con un Documento Excel desde Word, primero hay que fijar las instancias de los objetos |
| - | 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 | + | 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 |
| <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 | ||
| </ | </ | ||
| + | |||
| + | 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
