[Word] Colocar el cursor en la primera página
Aquí un Tip, para colocar el cursor el inicio del Documento. Esto lo hacemos con una sola línea de código que es:
Word.Selection.HomeKey(Microsoft.Office.Interop.Word.WdUnits.wdStory, False)
El segundo parámetro nos indica si vamos a seleccionar el texto, si lo colocamos en True, selecciona desde el punto donde se encontraba el puntero hasta el inicio.
[Access] Obtener el tipo de datos y Formato de un campo en una Tabla
Aquí un tip más si quieren saber el tipo de datos lo hacen con esta instrucción:
miBD.TableDefs("Alumnos").Fields("ID").Type
El objeto miBD es de tipo data base que hereda de la clase DAO, para esto debes agregar una referencia al proyecto y después asignarle el tipo de datos de la Aplicacción Access más o menos así:
miBD = Access.CurrentDb
Para saber el formato de tipo de datos es con la siguiente instrucción:
miBD.TableDefs("Alumnos").Fields("ID").Properties("Format").Value
Espero que les sea de utilidad Saludos..
@nor
[Word] Saber en que página esta el cursor en un Documento
Que tal, siguiendo con estos mini ejemplos de programación en Office, mientras pasa el tiempo, y en base a una pregunta eh aquí el como identificar en que página se encuentra el cursor en un Documento de Word.
El ejemplo siguiente es muy sencillo pero hice un menú para que pudieran apreciar el funcionamiento. Contiene un menú con las opciones:
- Abrir un Documento
- Mover el Cursor
- Cerrar Documento
El código es el siguiente.
Imports Word = Microsoft.Office.Interop.Word Module Module1 Public word As Word.Application Sub Main() word = New Word.Application Menu() Dim valor As Integer Do Try valor = Integer.Parse(Console.ReadLine()) Catch ex As Exception Console.WriteLine(ex.Message) End Try Proceso(valor) Console.Clear() Menu() Loop While valor <> 4 End Sub Public Sub Menu() Console.WriteLine("1.- Abrir Documento") Console.WriteLine("2.- Mover Cursor") Console.WriteLine("3.- Cerrar el Documento") Console.WriteLine("4 Cerrar Aplicación") Console.Write("Selecciona alguna Opción :") End Sub Public Sub AbrirDocumento(ByVal val As Boolean) If val = False Then word.Documents.Open("C:\Demo.docx") word.Application.Visible = True Else word = word.ActiveDocument.Application For i As Integer = 1 To word.Selection.Information _ (Microsoft.Office.Interop.Word.WdInformation.wdNumberOfPagesInDocument) If word.Selection.Information _ (Microsoft.Office.Interop.Word.WdInformation.wdActiveEndPageNumber) = i Then Console.WriteLine("El Cursor esta en la página: {0} ", i) End If Next End If End Sub Public Sub CerrarDocumento() For Each doc As Word.Document In word.Documents doc.Close(SaveChanges:=False) Next word.Application.Quit() End Sub Public Sub Proceso(ByVal id As Integer) Select Case id Case 1 AbrirDocumento(False) Case 2 Console.Clear() AbrirDocumento(True) Console.ReadLine() Case 3 CerrarDocumento() End Select End Sub End Module
Explicando el Código.
El primer método es el de Menú, que solo contiene las opciones que se muestran en pantalla.
Lugo esta el método de Abrir un documento, que consta de 2 etapas en base a una condición sencilla, recibe un variable booleana que según el valor es la acción que realiza. Con la opción uno solo abre el documento llamad Demo.docx que esta en la unidad C. En la opción 2 muestra un mensaje en la consola que indica que página esta el puntero.
El método de Cerrar el documento. (Sin comentarios)
Por ultimo el de proceso que evalúa que es lo que el usuario eligió.
La parte importante de este post es el saber como identificar en que página esta el puntero y esto se encuentra en el método AbrirDocumento y el código es este:
For i As Integer = 1 To word.Selection.Information _ (Microsoft.Office.Interop.Word.WdInformation.wdNumberOfPagesInDocument) If word.Selection.Information _ (Microsoft.Office.Interop.Word.WdInformation.wdActiveEndPageNumber) = i Then Console.WriteLine("El Cursor esta en la página: {0} ", i) End If Next
Que recorremos la cantidad total de páginas del documento y obtenemos en que página esta puntero con la instrucción:
word.Selection.Information _ (Microsoft.Office.Interop.Word.WdInformation.wdActiveEndPageNumber)
Recuerden que para que funcione deben tener el archivo llama Demo.docx en su unidad D o colocar la ruta en donde se encuentre. Saludos.
@nor
[Word] Cerrar cualquier documento de Word de cualquier instancia
Ya es el tercer post sobre esto, y a petición de un comentario de mi amigo David. Solo una pequeña modificación para cerrar los documentos de Word. Les platico a lo que se refiere y porque publico este post. Resulta que trabajamos con objetos de Word, validación de eventos sobre el Office 2007 y muchas veces tenemos la necesidad de reiniciar una aplicación de Office sin guardar cambios, pero resulta que sino controlamos bien la liberación de los recursos o de los objetos nos puede traer varios errores.
Lo que me preguntaron es como cerrar todos las instancias de Word, pero sin hacerlo desde los procesos como lo menciono en otro post, es decir que pasa si abro un archivo cualquiera y después creo un instancia (desde código) y necesito validar no se… que se cierren todos los documentos, o que se guarden con nombres específicos, que se yo.
En el siguiente ejemplo cerramos absolutamente todos los documentos sin importar la instancia.
Imports Word = Microsoft.Office.Interop.Word Module Module1 Sub Main() 'Variables Dim AppWord As New Word.Global Dim doc As Word.Document 'Aquí cerramos todos los documentos sin guardar cambios For Each doc In AppWord.Documents doc.Close(SaveChanges:=False) Next AppWord.Application.Quit(SaveChanges:=False) End Sub End Module
Si se dan cuenta es muy similar a lo que publique en el post de cerrar los documentos a partir de una instancia, pero aquí hacemos referencia a la aplicación Global, esa es la diferencia para poder cerrar todos los documentos de Word que se encuentren abiertos en nuestro Sistema.
Para ver que funciona, prueben abriendo varios archivos de Word y luego ejecuten el programa, verán que se cierran todos sin guardar cambios.
Saludos.
@nor
[Word] Como cerrar los documentos de Word a partir de una instancia
En el post anterior vimos como cerrar los objetos de Word en base a la lista del proceso del Sistema. En este ejemplo vamos a ver como cerrarlos a partir de una instancia, esto lo podemos usar cuando trabajamos con objetos de Word para verificar que el usuario haga algo o que se yo, pero aquí el ejemplo.
Imports Word = Microsoft.Office.Interop.Word Module Module1 Sub Main() 'Variables Dim AppWord As New Word.Application Dim doc As Word.Document 'Agregamos cuatro documentos en blanco y escribimos un texto For i As Integer = 0 To 4 AppWord.Documents.Add() AppWord.Application.WindowState = Word.WdWindowState.wdWindowStateNormal AppWord.Visible = True AppWord.ActiveDocument.Sections(1).Range.Text = "Mi Documento numero: " & i Next 'Aquí cerramos todos los documentos sin guardar cambios For Each doc In AppWord.Documents doc.Close(SaveChanges:=False) Next AppWord.Quit(SaveChanges:=False) End Sub End Module
Explicando el código.
Primero creamos una instancia de Word y un documento para poder hacer el recorrido por el arreglo de Documentos abiertos.
En el For creamos 5 documentos maximizamos la ventana y la mostramos, al mismo tiempo que agregamos un texto al mismo.
Después por medio del For each recorremos todos los documentos que creamos (incluso sirve si los abrimos), los cerramos sin guardar cambios.
Por ultimo cerramos nuestra instancia de Word.
Espero que les sea de utilidad.
Saludos.
@nor.
[Word] Cerrar todas las instancias de Word en el Sistema
Muchas veces tenemos la necesidad de cerrar o tronar los procesos de un objeto de Office, en este caso de Word. El siguiente ejemplo muestra como hacer.
Imports System.Diagnostics Module Module1 Sub Main() Dim procs() = Process.GetProcesses Dim pr As Process For Each pr In procs If (pr.ProcessName = "WINWORD") Then pr.Kill() End If Next End Sub End Module
Utilizamos el nombre de espacios Diagnostics, que nos permite obtener los procesos que se están ejecutando en el Sistema. lo que hacemos es obtener un arreglo de dichos procesos para después recorrerlos e identificar cuales son los que queremos tronar. Por ultimo ejecutamos el método Kill el cual detiene inmediatamente el proceso asociado.
Espero que les sea de utilidad, y como se observa en el ejemplo podemos aplicar esto a cualquier proceso, e incluso ejecutar algún otro que no este corriendo.
Saludos.
Office 14 = Office Web Applications
Siguiendo con todas estas ola de nuevas tecnologías que se estás mostrando en estos momentos en el PDC 2008 en los Ángeles, toca el turno de Office, y si bien es un tema bastante interesante en lo personas, ya que últimamente (2 semanas más o menos), que me estoy peleando un objetos de Office (Word, Power Point, Excel), para manipulación de eventos, validaciones, etc.. Al momento de enterarme de lo que viene con Office 14, se me ha dibujado una sonrisa en el rostro :D, y esto por todo lo que les ofrecerá tanto a usuarios como a desarrolladores.
La idea principal de Microsoft Office Web Applications va más allá de un fácil manejo sobre los tipos de documentos Office (Word, Power Point, Excel y OneNote), sino que se trata de la visualización, edición y colaboración entre las 3 grandes plataformas con las que convivimos día a día que son, la PC, los móviles y la Internet.
Una característica importante de esto es que Web Applications tendrán características multiplataforma, de manera que podremos trabajar con nuestros documentos desde Internet Explorer, Firefox o Safari. Por supuesto, por debajo vamos a tener una plataforma de sincronización perfecta que nos permitirá trabajar con nuestros documentos en los tres entornos comentados, sin pérdida de datos y con actualización instantánea de datos.
Aquí unas imágenes de lo que al parecer es un archivo de Office que se muestra en los Exploradores IE y Firefox.
Si bien esto lo podemos lograr hoy en día modificando algunos registros como para poder ver documentos de Office en el IE7 como se muestra a continuación:
Será fantástico ver como es el funcionamiento, y el rendimiento. Me intriga saber muchas cosas sobre lo que se podrá hacer. Por el momento a esperar que nuevas noticias nos tienen los señores que están presentando el PDC 2008.
OpenXML ya es un estándar ISO (IS 29500)
ISO anunció hace un par de días los resultados del proceso de votación de los países respecto a la estandarización de OpenXML en ISO. Aquí el comunicado de prensa oficial http://www.iso.org/iso/pressrelease.htm?refid=Ref1123.
Esto Significa que OXML ahora es un estándar de formato de documentos abierto y reconocido por ISO e IEC junto a HTML, PDF y ODF 🙂
Office Open XML (OOXML) – Formato de Archivos de Documentos
Para iniciar con este tema, trataremos de entender que es Office Open XML, como es que funciona y para que me sirve. En primer punto comenzare con platicando que son los formatos de archivos de documentos como lo es OOXML.
Formatos de Archivo de Documentos
Cuando trabajamos con formatos digitales, o hacemos uso de este término, a lo que nos referimos es a la actividad de usar un software para manipulación de información, ya sea para visualizara en nuestra PC o imprimirla, toda esta información esta contenida en dos partes: 1) los datos o contenido intelectual del documento y 2) la información de cómo se presenta el contenido.
Esto quiere decir que nuestros formatos de archivo de documento nos permiten describir ambo tipos de documentos de manera que las aplicaciones de software puedan utilizar y reutilizar la información.
Los nuevos formatos de Office Open XML nos permiten la mismas posibilidades de acceso a toda la información en los documentos, este formato es el que utiliza de forma nativa la suite de Microsoft Office System 2007 y para ver cómo podemos accesar a esta información, aquí una demo:
Lo primero es abrir una aplicación de Micorosft Office 2007, en mi caso Word, aquí agregamos una serie de elementos como imágenes, texto y le damos diferente tipo de formato a nuestro texto, algo como se ve en la figura:
El paso siguiente es guardar nuestro archivo con la extensión docx.,
Este archivo lo guarde en mi escritorio, para continuar hacemos un pequeño cambio a nuestras opciones de carpeta, en donde nos permita ver la extensiones de nuestros archivos. Ya que activamos esta parte, nos dirigimos a la ubicación de nuestro archivo, damos clic derecho seleccionamos cambiar nombre y lo que cambiamos es la extensión, de .docx a .zip
Podemos observar que el icono de nuestro documento pasa de Word a un zip sin problema, ahora ya podemos accesar a la información especifica de nuestro archivo, dentro de este .zip encontramos 3 carpetas y un archivo .xml
en ellos encontramos nuestra información por separado, por ejemplo en la carpeta word esta la info del documento, de las fuentes, de los estilos y también esta la info de la imagen, está se encuentra dentro de la carpeta media, por otro lado en la carpeta docProps esta la info de quien creó el documento, fecha y todo eso, para poder trabajar de nuevo con el documento solo basta con cambiarle de nuevo la extensión a .docx.
“Con OpenXML, Microsoft ha separado el contenido de la presentación y lo ha hecho de forma abierta, basándose en estándares.” Jason Welch, Practice Manager, NuSoft Solutions.
Comentarios recientes