SlideShare una empresa de Scribd logo
1 de 212
Macros VBA Word office
http://norfipc.com/utiles/codigos-ejemplos-macros-para-word-en-visual-basic.php
Códigos de ejemplos para macros de Word en
Visual Basic
Crear macros en Microsoft Word copiando y pegando el código en el editor
de VBA. Recopilación de ejemplos prácticos para copiar y pegar. Cambiar el
formato de párrafos, imprimir, insertar imágenes, comentarios y muchas
otras acciones, que en ocasiones requieren varios pasos.
Sencilla recopilación de algunos
códigos para crear macros en Word, Excel y otras aplicaciones incluidas en la
suite de Microsoft Office.
Solo es necesario copiarlos y pegarlos en el editor de VBA incluido en estos
programas, para crear los macros.
El objetivo es facilitar la creación de macros que pueden resultar muy útiles
para la ejecución de diversas tareas.
También incentivar y estimular los que les agrada crear sus propias
aplicaciones y configurar el programa que utilizan de forma personal.
¿Cómo usar los códigos para crear las macros?
En otro artículo publicado en este sitio se explica en detalle el proceso de
creación de las macros en los programas de Microsoft Office de las dos
formas posibles, usando la "Grabadora de macros" y el "Editor de Visual
Basic".
En esta página solo iremos publicando y compartiendo los códigos que
llegan a nuestras manos o creamos para nuestro uso personal, que se
pueden insertar directamente en el editor de VBA y así crear macros.
Solo es necesario copiar el código, abrir el editor usando las teclas ALT + F11
y pegar.
Posteriormente abrir la ventana "Macros" (teclas ALT + F8), seleccionar la
macro creada y ejecutarla.
Lógicamente es posible asignar a cada macro un icono y situarlo en la Barra
de acceso rápido o una combinación de teclas.
Códigos para crear macros en Word
Ejemplos de acciones elementales
Algunos de los macros pueden ser sumamente sencillos.
Experimenta con los siguientes códigos y modifícalos a tu gusto.
Cualquier cambio hecho en el editor, toma efecto inmediatamente.
Para conocer más de la estructura del código, puedes crear macros usando
la "Grabadora de macros" y posteriormente observar el código en el "Editor
de VBA".
Cambiar formato
El siguiente macro cambia el formato del texto seleccionado.
Sub for1()
' Cambiar tamaño de la fuente
Selection.Font.Size = 20
' Cambiar el tipo de fuente
Selection.Font.Name = "Britannic Bold"
' Poner texto en negrita
Selection.Font.Bold = wdToggle
' Poner texto en italic
Selection.Font.Italic = wdToggle
' Darle el color rojo
Selection.Font.Color = wdColorRed
End Sub
Para alinear el texto usa:
' Alinear texto a la izquierda:
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
' Alinear texto a la derecha:
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
' Centrar texto:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
' Texto justificado completo
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
Para seleccionar todo el texto usa:
Selection.WholeStory
Insertar texto
Para insertar cualquier texto predeterminado en el punto de inserción del
cursor del ratón usa:
Sub SustT()
Selection.TypeText Text:="este texto"
End Sub
Códigos para copiar y pegar
Para copiar cualquiera de los códigos da un clic en el cuadro de texto que
los contienen y usa las teclas CONTROL + C.
En los códigos las líneas antecedidas de una comilla (‘), en el editor se muestran de
color verde, son solo comentarios.
Imprimir todos los documentos abiertos
Macro que nos permite enviar a la impresora de una vez, todos los
documentos de Word que tengamos abiertos.
Vista previa de impresión al 100%
En las versiones recientes de Word al decidir imprimir un documento se abre
la ventana de vista previa con la barra de opciones a la izquierda, por lo que
la vista previa del resultado final de la impresión se muestra reducida.
Usando el siguiente macro la vista previa se mostrará al 100%, pasando las
opciones de impresión a la parte superior como en versiones anteriores.
Imprimir todos los documentos que están en una carpeta
Macro para imprimir todos los documentos que se encuentren en el interior
de una carpeta especifica.
Los que imprimen regularmente solo necesitan copiar a dicha carpeta,
creada para ese fin los documentos.
Se debe especificar el código la ruta absoluta a dicha carpeta.
Pegar texto sin formato
Al copiar y pegar texto desde una página web a un documento de Word, se
mantendrá el formato de origen, lo que puede ser molesto. Es necesario
antes de pegar escoger: "Pegado especial > Texto sin formato".
La siguiente macro permite hacer lo anterior con una sola instrucción o
botón.
Insertar imágenes desde una cámara o escáner
En las versiones recientes de Word no se incluye la opción: "Insertar –>
Imagen –> Desde escáner o cámara".
Es necesario abrir previamente la Galería Multimedia, agregar la imagen y
solo después en Word usar: "Insertar –> Imágenes prediseñadas".
La siguiente macro permite insertar directamente cualquier imagen
directamente desde una cámara o un escáner conectado, al igual que en
Office 2003.
Encerrar texto entre comillas
Inserta comillas al comienzo y final del texto seleccionado.
De forma similar se puede usar la macro para encerrar texto entre comillas
simples, paréntesis, llaves o corchetes, con solo modificar el código.
Encerrar texto entre paréntesis
Inserta paréntesis al comienzo y final del texto seleccionado.
Cambiar el formato al texto entre paréntesis
Poner en italic y dar color rojo al texto que se encuentre encerrado entre
paréntesis.
Listar todas las fuentes instaladas
Interesante macro que permite crear en un nuevo documento un listado de
todas las fuentes instaladas en el sistema, con una vista previa de cada una.
Lista útil para tener a mano o imprimir.
Insertar un comentario
Permite insertar un comentario predeterminado en el punto de inserción o
sea donde se situe el cursor del ratón en un documento.
Sustituye en el código "COMENTARIO" por lo que debe aparecer.
Insertar un símbolo determinado en un documento
Usa la macro siguiente para insertar cualquier símbolo en el punto de
inserción.
En este caso se inserta un corazón, pero puede hacerse con cualquier otro
símbolo especificando en el código su número decimal y la fuente de ser
necesario.
Es posible insertar caracteres Unicode.
Usa la herramienta Símbolos de Word para identificarlos.
Ventana de alerta con la fecha de hoy
Insertar fecha en el documento
Ejecutar los macros de forma automática
Podemos crear macros que se ejecuten automáticamente, son llamadas
AutoMacros.
Para eso es necesario crearlas y darles un nombre específico.
Son las siguientes:
AutoExec. Se ejecuta al abrir Word.
AutoExit. Se ejecuta al cerrar Word.
AutoOpen. Se ejecuta cuando se abre un documento desde la plantilla
donde tenemos la macro.
AutoClose. Se ejecuta cuando se cierra un documento desde la plantilla
donde tenemos la macro.
AutoNew. Se ejecuta cuando se crea un nuevo documento desde la plantilla
donde esta la macro.
Hazte fan de nuestra página en Facebook, para recibir
información técnica actualizada y trucos para el uso de la computadora, el celular e
internet
Recibe en Twitter a diario, sugerencias sobre contenido útil e
interesante, solo síguenos.
¡Damos follow-back a los que nos siguen!
Síguenos en Google+
Páginas relacionadas
Como crear y grabar macros en Word y Excel, ejemplos prácticos
Trucos para Microsoft Word, uso, tips, configuración, ayuda y consejos
Trucos para Microsoft Word, utilidades, curiosidades y secretos
Cómo recuperar documentos perdidos que no se guardaron en Word
Como abrir, reparar y recuperar archivos y documentos dañados de Word
Como usar el diccionario de Word en otro equipo o instalación
¿Necesitas buscar algo en nuestro sitio? ¡Usa a Google!
 Articulos
o Inicio
o Navegar en internet
o De todo para Facebook
o Como lo hago. Artículos varios
o Celulares
o Modificar Windows
o Descargas gratis
o Herramientas para virus
o Comandos y batch para Windows
o Modificar el Registro
o Herramientas para la red
o Diseño web fácil
o Informaciones de Windows
o Infografías
o Redes sociales
o Recuperar
o Páginas y aplicaciones HTA

Anterior | Subir | Siguiente
NorfiPC Copyright (C) 201
Ejemplos de macro VBA para insertar
texto en un documento en Word
2000
http://support.microsoft.com/kb/212682/es
Ejemplos de macro VBA para insertar
texto en un documento en Word
2000
Imprimir
Correo electrónico
Seleccione idioma
Id. de artículo: 212682 -Ver los productos a los que se aplica este artículo
Ver renuncia de traducción automática
Traducción automática en páginas deMicrosoft
Para obtener una versión de MicrosoftWord 98 Macintosh Edition de este artículo,vea 183866.
Para obtener una versión de MicrosoftWord 97 de este artículo,vea 161407.
Expandir todo | Contraer todo
En esta página
Resumen
Este artículo proporciona variosde Visual Basic paraAplicaciones deejemplos de macros que utilizan la propiedad Selectiony el ob
Volver arriba | Enviar comentarios
Más información
Microsoftproporciona ejemplos deprogramación únicamente con fines ilustrativos,sin ningunagarantía expresa o implícita.Esto
de comerciabilidad o idoneidad para un fin determinado. Este artículo asumeque está familiarizado con el lenguajede programac
utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoftpueden explicarlela funcionalidad de
modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos quecumplan sus requisitosespecíficos.
Mediante el objeto Selection y el método TypeText
Inserta el texto especificado. Si la propiedad ReplaceSelection es True, la selección sesustituirá por el texto especificado. Si la pro
texto especificado delantede la selección.
Para obtener más información acerca dela propiedad ReplaceSelection,en el Editor de Visual Basic,haga clicen Ayuda de Microso
propiedad ReplaceSelection en el Ayudante de Officeo el Asistente para Ayuda y, a continuación,haga clic en Buscar para ver el t
Sub TypeTextMethod()
Dim MyText As String
MyText = "<Replace this with your text>"
Selection.TypeText (MyText)
End Sub
Utilizando el objeto de la selección y el método TypeText
En el siguiente ejemplo se reemplaza todo el contenido de un documento con la palabra"Reemplazó" independientemente de la p
Sub RangeProperty()
' Range Example:
ActiveDocument.Range.Text = "Replaced"
End Sub
Uso del objeto Range
Ejemplo del método InsertAfter :
Inserta el texto especificado al final deun intervalo o una selección.
Sub InsertAfterMethod()
Dim MyText As String
Dim MyRange As Object
Set MyRange = ActiveDocument.Range
MyText = "<Replace this with your text>"
' Selection Example:
Selection.InsertAfter (MyText)
' Range Example:
' (Inserts text at the current position of the insertion point.)
MyRange.Collapse
MyRange.InsertAfter (MyText)
End Sub
Ejemplo del método InsertBefore :
Inserta el texto especificado al principio deun intervalo o una selección. Después de aplicar estemétodo, el intervalo o la selecció
Sub InsertBeforeMethod()
Dim MyText As String
Dim MyRange As Object
Set MyRange = ActiveDocument.Range
MyText = "<Replace this with your text>"
' Selection Example:
Selection.InsertBefore (MyText)
' Range Example: Inserts text at the beginning
' of the active document.
MyRange.InsertBefore (MyText)
End Sub
Con objeto de intervalo o la seleccióny el método InsertAfter o InsertBefore
Inserta un comentario en la posición actual del punto de inserción.
Sub CommentsCollectionObject()
Dim MyText As String
Dim MyRange As Object
Set MyRange = ActiveDocument.Range
MyText = "<Replace this with your text>"
' Selection Example:
Selection.Comments.Add Range:=Selection.Range, Text:=MyText
' Range Example:
MyRange.Comments.Add Range:=Selection.Range, Text:=MyText
End Sub
Insertar un comentario en un documento utilizando el objeto Range o Selection
Inserta un campo en la posición actual del punto de inserción.
Sub FieldsCollectionObject()
Dim MyText As String
Dim MyRange As Object
Set MyRange = Selection.Range
MyText = "<Replace this with your text>"
' Selection Example:
Selection.Fields.Add Range:=Selection.Range, _
Type:=wdFieldQuote, Text:=MyText
' Range Example:
Range.Fields.Add Range:=Selection.Range, _
Type:=wdFieldQuote, Text:=MyText
End Sub
En este ejemplo, se inserta un campo de fórmula. El resultado seformatea con un signo de dólar.
Sub InsertFormulaMethod()
Selection.InsertFormula Formula:="=100,000.0-45,000.0", _
NumberFormat:="$#,##0.0"
End Sub
Insertar un campo en un documento utilizando el objeto Range o Selection
Esta propiedad devuelve un objeto Range con el formato de carácter y el texto del intervalo o selección. El formato de párrafo sei
párrafo en el intervalo o la selección. Cuando seestablece esta propiedad,el texto en el intervalo se sustituyepor el texto con form
utiliceel método Collapse antes de utilizaresta propiedad.
Sub FormattedTextProperty()
' This example copies the first paragraph in the document, including
' its formatting, and inserts the formatted text at the insertion
' point.
Selection.Collapse Direction:=wdCollapseStart
Selection.FormattedText = ActiveDocument.Paragraphs(1).Range
End Sub
Reproducir el texto, incluido el formato de un intervalo de texto
Nota: la propiedad HeaderFooter requiere que la selección seencuentra dentro de un encabezado o pie de página,o se producirá
Sub HeaderFooterProperty()
Dim MyText As String
MyText = "<Replace this with your text>"
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Range.Text = "MyText"
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
En el ejemplo siguiente se cambia el texto de encabezado y pie de página principal dela primera sección del documento activo.
Sub HeaderFooterObject()
Dim MyText As String
MyHeaderText = "<Replace this with your text>"
MyFooterText = "<Replace this with your text>"
With ActiveDocument.Sections(1)
.Headers(wdHeaderFooterPrimary).Range.Text = MyHeaderText
.Footers(wdHeaderFooterPrimary).Range.Text = MyFooterText
End With
End Sub
Colocar texto en un encabezado o pie de página
En este ejemplo, se inserta un campo Time para la fecha actual.
Sub InsertDateTimeMethod()
Dim MyRange As Object
Set MyRange = Selection.Range
' Selection Example:
Selection.InsertDateTime DateTimeFormat:="MMMM dd, yyyy", _
InsertAsField:=True
' Range Example:
MyRange.InsertDateTime DateTimeFormat:="MMM dd, yyyy", _
InsertAsField:=True
End Sub
Con el objeto Range o Selection para insertar una fecha utilizando el campo de hora
En este ejemplo, se inserta un nuevo párrafo a continuación dela posición actual del punto de inserción.
Sub InsertParagraphMethod()
Dim MyRange As Object
Set MyRange = ActiveDocument.Range
' Selection Example:
Selection.InsertParagraph
' Range Example:
MyRange.Collapse Direction:=wdCollapseStart
MyRange.InsertParagraph
End Sub
Uso del objeto Range o Selection para insertar un nuevo párrafo
En este ejemplo se inserta una flecha de dos puntas en el punto de inserción.
Sub InsertSymbolMethod()
Dim MyRange As Object
Set MyRange = ActiveDocument.Range
' Selection Example:
Selection.InsertSymbol CharacterNumber:=171, _
Font:="Symbol", Unicode:=False
' Range Example:
MyRange.Collapse Direction:=wdCollapseStart
MyRange.InsertSymbol CharacterNumber:=171, _
Font:="Symbol", Unicode:=False
End Sub
Utilizar el objeto Range o Selection para insertar un símbolo
Este ejemplo inserta texto colocado en el Portapapeles en la posición actual del punto de inserción.
Sub PasteMethod()
Dim MyRange As Object
Set MyRange = Selection.Range
' Selection Example:
Selection.Paste
' Range Example:
MyRange.Collapse Direction:=wdCollapseStart
MyRange.Paste
End Sub
Para obtener más información acerca decómo utilizar el objeto Range, en el Editor de Visual Basic,haga clic en Ayuda de Microso
Range en el Ayudante de Officeo el Asistente para Ayuda y, a continuación,haga clic en Buscar para ver el tema.
Para obtener más información acerca decómo utilizar el objeto Selection, en el Editor de Visual Basic,haga clic en Ayuda de Micro
objeto Selection en el Ayudante de Office o el Asistente para Ayuda y, a continuación,haga clic en Buscar para ver el tema.
Para obtener más información acerca decómo utilizar el código de ejemplo de este artículo,haga clic en el número de artícul o sig
212536OFF2000:Cómo ejecutar código de ejemplo de artículos de Knowledge Base
Volver arriba | Enviar comentarios
Referencias
Para obtener más información acerca decómo obtener ayuda con Visual Basic paraAplicaciones,consulte el artículo siguienteen
226118 OFF2000:Recursos de programación para Visual Basic paraAplicaciones
Volver arriba | Enviar comentarios
属性
Id. de artículo:212682 - Última revisión:miércoles,11 de octubre de 2006 - Versión: 3.2
La información de este artículo se refiere a:
 Microsoft Word 2000 Standard Edition
Palabras clave: kbmtkbdtacode kbhowtokbmacroexamplekbprogrammingKB212682 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lu
traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos l os artículos de nuestra
artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un e xtranjero podría cometer
cualquier imprecisión, error o daño ocasionado por una mala traducción delcontenido o como consecuencia de su utilización po r nuestros clientes. Micr
frecuentemente.
Haga clic aquí para ver el artículo original(en inglés): 212682
VBA – WORD
http://csdk.webs.com/files/VBA-Word.pdf
101 Ejemplos de Código para Office 2010 con VBA
http://www.apuntesdeoffice.com/2012/08/101-ejemplos-de-codigo-para-office-2010.html
Hoy te traemos una recopilación de varios ejemplos de programación para Microsoft Office 2010
con Visual Basic para Aplicaciones (VBA).Estos ejemplos de código pueden ayudarnos a crear
nuestras propias aplicaciones con funciones específicas o servir de punto de partida para crear
soluciones más complejas.Se incluyen ejemplos en Word, Excel,PowerPoint, OneNote, Outlook,
Visio y Office en general.
Cada ejemplo de código consta de 5 a 50 líneas de código aproximadamente que muestran una
característica o conjunto de características diferentes en VBA. Cada ejemplo incluyecomentarios
que lo describen, código de configuración para poder usar el código con los resultados esperados o
los comentarios explicarán cómo configurar el entorno para poder usarel código de ejemplo. Si
deseas descargarlos todos juntos, puedes hacer clic en el siguiente enlace:
Office 2010 101 Code Samples.zip
Descargue todos los ejemplos en un único archivo ZIP o haga clic en cada título individual a
continuación para descargarel código VBA para el fragmento concreto.
Word 2010
 Word 2010:Agregareventos de nivel de aplicación con eventos de aplicación Word.New
 Word 2010:Agregarefectos de iluminación y reflejo al texto
 Word 2010:Agregarformas de imagen y aplicar formato al recortecon
Word.PictureFormat.Crop
 Word 2010:Aplicarun conjunto de estilos rápidos con Word.QuickStyleSets
 Word 2010:Aplicartemas y estilos con Word.DocumentApplyThemeQuickStyle
 Word 2010:Protegerdocumentos de Word 2010 con control de versiones en los servidores
de SharePoint
 Word 2010:Borrar el formato con Word.SelectionClearFormatting
 Word 2010:Compararlas características de dos documentos con
Word.DemoCompareDocuments
 Word 2010:Crear un conjunto de estilos rápidos con Word.SaveAsQuickStyleSet
 Word 2010:Exportare importar fragmentos de texto con
Word.RangeImportExportFragment
 Word 2010:Omitir la puntuación, la coincidencia de prefijos y sufijos, y borrar el resaltado
 Word 2010:Mostraruna lista de información de contenido de cuadro combinado con
Word.ContentControlLists
 Word 2010:Hacer y guardar modificaciones simultáneamentecon Word.Coauthoring
 Word 2010:Manipular los controles de casilla con Word.CheckBoxContentControl
 Word 2010:Girar y retorcer texto con Word.WorkWithTextFrame
 Word 2010:Trabajarcon la división automática de palabras con
Word.ConvertAutoHyphens
 Word 2010:Trabajarcon registros de deshaceranidados con
Word.NestedCustomUndoRecords
 Word 2010:Trabajarcon las propiedades del objeto Range con Word.CharParagraphStyle
 Word 2010:Trabajarcon la pila de deshacer con Word.CustomUndoRecord
 Word 2010:Trabajarcon temas, control de formato, control de revisiones y control de
movimientos
Excel 2010 (en inglés)
 Excel 2010:Agregar conjuntos de iconos para rangos con Excel.AddIconSetCondition
 Excel 2010:Aplicar formato condicional con el método Excel.DataBar
 Excel 2010:Cambiar los colores para indicarlos valores porencima y pordebajo del
promedio en rangos
 Excel 2010:Comunicarse con PageSetup mediante el método Excel.PrintCommunication
 Excel 2010:Crear y manipularvistas personalizadas con el método Excel.CustomView
 Excel 2010:Crear eventos de los gráficos medianteprogramación
 Excel 2010:Determinar los complementos abiertos mediante Excel.TestAddIn.IsOpen
 Excel 2010:Mostrar el diez por ciento superior en rangos mediante programación
 Excel 2010:Mostrar números únicos en rangos con Excel.AddUnique
 Excel 2010:Habilitar la eliminación de filas duplicadas con Excel.RemoveDuplicates
 Excel 2010:Exportar datos a PDF o XPS con el método Excel.ExportAsFixedFormat
 Excel 2010:Aplicar formato a los rangos de datos con el método Excel.DisplayFormat
 Excel 2010:Aplicar formato a colores en rangos con Excel.AddColorScale
 Excel 2010:Manipularlas propiedades de la interfaz de usuario con
Excel.ApplicationProperties
 Excel 2010:Modificar las propiedades de presentación de las tablas con
Excel.ListObjectDisplay
 Excel 2010:Quitar varias propiedades con Excel.RemoveDocumentInformation
 Excel 2010:Recuperarinformación acerca de los puntos de gráficos con Excel.PointClass
 Excel 2010:Mostrar las propiedades de la serie de gráficos con Excel.SeriesProperties
 Excel 2010:Mostrar las propiedades de los marcos superados con
Excel.TextFrameProperties
 Excel 2010:Mostrar las propiedades de ListObject con Excel.ListObjectTableStyles
 Excel 2010:Mostrar las propiedades del objeto Window con Excel.WindowProperties
 Excel 2010:Ordenar y filtrar mediante programación con Excel.ListObjectSortFilter
 Excel 2010:Ordenar los datos mediante programación con Excel.WorksheetSort
 Excel 2010:Usar las propiedades de gruposde minigráficos con Excel.SparkLines
 Excel 2010:Trabajar con las propiedades DataBodyRange y Total con Excel.ListColumn
 Excel 2010:Trabajar con las características de relleno degradado con el método
Excel.Gradient
 Excel 2010:Trabajar con las propiedades Header y Footercon Excel.PagesAndPage
 Excel 2010:Trabajar con hipervínculos medianteprogramación
 Excel 2010:Trabajar con varias funciones de fecha con Excel.WorksheetFunctionDates
 Excel 2010:Trabajar con varias propiedades con el objeto Excel.PageSetup
PowerPoint 2010
 PowerPoint 2010:Agregar formas y aplicarles formato con PPT.ColorFormat.Brightness
 PowerPoint 2010:Agregar series de eventos de nivel de aplicación con PPT.NewEvents
 PowerPoint 2010:Aplicar temas y fondos con PPT.ApplyTheme.BackgroundStyle
 PowerPoint 2010:Cambiar las ubicaciones de los gráficos con
PPT.InteractWithChartLocation
 PowerPoint 2010:Controlar el comportamiento de clic en animaciones con
PPT.SlideShowClicks
 PowerPoint 2010:Convertirtexto en SmartArt con PPT.ConvertTextToSmartArt
 PowerPoint 2010:Copiar una animación con PPT.PickupAndApplyAnimation
 PowerPoint 2010:Crear vídeos medianteprogramación
 PowerPoint 2010:Mostrar las propiedades de los controles multimedia
 PowerPoint 2010:Exportar diapositivas como archivos PPTX con PPT.PublishSlides
 PowerPoint 2010:Insertar,mover y obtener recuentos de sección con
PPT.WorkWithSections
 PowerPoint 2010:Interactuar con los estilos de tabla con PPT.Table.ApplyStyle
 PowerPoint 2010:Vincular vídeos y archivos de audio incrustados con PPT.AddMedia
 PowerPoint 2010:Mostrar una lista de los nombres de SmartArtcon
PPT.WorkWithSmartArt
 PowerPoint 2010:Combinar dos lotes en uno con PPT.MergeWithBaseline
 PowerPoint 2010:Modificar aspectos de los vídeos con PPT.MediaFormatProperties
 PowerPoint 2010:Volver a muestrear y restablecer la resolución con PPT.ResampleMedia
 PowerPoint 2010:Establecer el relleno de fondo en las tablas con PPT.TableBackground
 PowerPoint 2010:Establecer las bandas y el ajuste de escala de las tablas con
PPT.TableProperties
 PowerPoint 2010:Usar datos XML personalizados con PPT.CustomerDataDemo
 PowerPoint 2010:Ver las propiedades de la clase de ShadowFormat con PPT.Shadow
 PowerPoint 2010:Trabajar con la configuración de textura FillFormat con
PPT.ShapeTexture
 PowerPoint 2010:Trabajar con los métodos de la clase Player con
PPT.WorkWithMediaPlayer
 PowerPoint 2010:Trabajar con las propiedadesde iluminado y reflejo de formas
Visio 2010
 Visio 2010:Agregar contenedores y conectarformas en documentos de Visio 2010
 Visio 2010:Agregar contenedores en documentos de Visio con Visio.ContainerProperties
 Visio 2010:Enlazar dos formas con Visio.Page.DropCallout
 Visio 2010:Manipular formas conectadas con Visio.Page.DropConnected
 Visio 2010:Manipular la configuración de resolución de exportación de rasterización
 Visio 2010:Manipular las propiedades de forma con Visio.DropContainer
 Visio 2010:Leer y escribir la configuración de resolución de exportación de rasterización
OneNote 2010
 OneNote 2010:Crear páginas mediante programación con OneNote.CreateOneNotePage
 OneNote 2010:Manipularel acople con OneNote.fromVBA.DockWindow
 OneNote 2010:Ir a los objetosde OneNote 2010 con OneNote.NavigateTo
 OneNote 2010:Abrir, cerrar y mostrar blocs de notas de OneNote 2010 en una ventana
nueva
 OneNote 2010:Generarcontenido de página de OneNote 2010 a partirde orígenes VBA
 OneNote 2010:Incluir contenido de página de OneNote 2010 en archivos PDF
 OneNote 2010:Realizarbúsquedas de palabras clave en OneNote y obtener resultados en
formato XML
 OneNote 2010:Recuperardatos de atributosacerca de las secciones de blocs de notas de
OneNote 2010
 OneNote 2010:Recuperardatos acerca de los blocs de notas con
OneNote.fromVBA.ListNotebooks
 OneNote 2010:Recuperarinformación acerca de las ventanas abiertas de OneNote 2010
 OneNote 2010:Recuperarlos metadatos de las páginas de secciones de blocs de notas de
OneNote 2010
 OneNote 2010:Devolver ubicaciones de datos de la carpetade copiade seguridad con
GetSpecialLocation
 OneNote 2010:Trabajar con propiedades y cuadros de diálogo integrados con el cuadro de
diálogo QuickFiling
Outlook 2010
 Outlook 2010:Obtener acceso a listas de objetosde SharePoint con Outlook.PickerDialog
 Outlook 2010:Crear mensajesSMS y MMS con Outlook.MobileItem
 Outlook 2010:Manipular los elementos de las conversaciones de correo con
Outlook.Conversations
 Outlook 2010:Ver propiedades de Exchange Servercon Outlook.ExchangeAccounts
Office 2010 en General
 Office 2010:Cambiar los diseños de gráfico con Office.Chart.ModifyChartLayout
 Office 2010:Crear gráficos de barras con Office.Chart.CreateSimpleChart
 Office 2010:Modificar el texto de los ejes de un gráfico con Office.Chart.WorkWithAxisText
 Office 2010:Modificar las leyendas de un gráfico con Office.Chart.WorkWithLegend
 Office 2010:Modificar los títulos de un gráfico con Office.Chart.WorkWithTitle
 Office 2010:Modificar los gráficos con Office.Chart.ModifyChartData
VbA - Ejemplos varios realacionados a Visual basic
para aplicaciones
http://www.recursosvisualbasic.com.ar/htm/tutoriales/vba.htm
Indice
 Formulario en Vba de Access
Sencillo ejemplo de la Kb de Microsoft que muestra como, crear un formulario
de Access para cargar o rellenar en un Listview los datos de una tabla
 Obtener la unidad de la lectora en vba
Macro de ejemplo de la ayuda de Microsoft que usa las apis de windows
GetDriveType y GetLogicalDriveStrings
 Obtener rango
Obtener el rango actualmente en uso
 Access a Excel
Ejemplo de importación de datos
 Macro para importar una query
Rutina que importa registrs desde access a excel
 Archivo de texto a Excel
Rutina que recupera los datos desde un arhivo de texto plano y los pasa a una
sheet
 PowerPoint
Proyeto en vb que exporta un de recordset Ado a un archivo diapositiva de
PowerPoint
 Temporizador
Crear un timer en vba con el método Ontime
 Enviar correo
Formulario para enviar mail desde word
 Ejecutar un sql
Macro en vba de excel para traer un conjunto de registros a una sheet
 Acceder a procedimientos almacenados
Dos ejemplos en vba y c++ para acceder mediante Ado a un Stored procedure
mediante Ado
 Objeto FileSearch de vba
Buscar documentos de office y otros de una manera simple
 Crear gráfico en powerPoint
Artículo de Microsoft que muestra como crear una gráfica en PowerPoint ,
leyendo los valores desde un archivo externo, en este caso un fichero
delimitado por caracteres , comas, tabs etc..
 Ejemplos varios
Artículo de la ayuda de Ms para vba, que muestra una serie de rutinas simples
para trabajar en un documento de word con el objeto Range, Agregar párrafos
y texto, Encabezados y pie de página, insertar campos y otros
 Número de páginas del documento
Simple ejemplo para obtener el total de páginas en Word del documento activo
mediante una macro
 Detener una macro por un tiempo
Artículo que explica una manera poder generar pausas en su ejecución, y luego
volver a reanudar el proceso cuando el usuario decida
 Sumar celdas
Macro para sumar las celdas solo que se encuentran visibles
 Enviar mail
muestra como obtener datos desde un documento de Word , luego de un libro
de Excel y luego envía el correro por medio de OutLook
 Recorrer un rango
Dos ejemplos para recorrer en un bucle el rango seleccionado en la hoja
 Imprimir gráfico
Simple macro de la KB de Microsoft que muestra como poder imaprimir una
imagen , dibujo, o trazado vectorial en una impresora específica
 Ejemplos prácticos básicos
varios códigos para implementar en macros: Uso de UserFoms : cargar,
descargar, events de un userform etc.., Controles de vba : Labels, MultiPage,
SpinButton, commandbutton, ListBox, Textbox etc..
 Crear UserForm
Ejemplo que crea un UserFom mediante una macro en tiempo de ejecución en
microsoft Word 2000
 Vba , ado y excel
Artículo de la Knowledge base con varios ejemplos prácticos para trabajar en
vba con Microsoft Ado en Excel
 Crear nuevo contacto en vba de Outlook
 Enviar por mail un rango de celdas de Excel en vba
 Add-in para exportar gráficos de Excel
Página con ejemplos en vba y también para descargar un complemento add-in
que permite exportar gráficos de Microsoft Excel 2000 y Excel 2007 a un
archivo en disco ( formatos gif, jpg, png ) .. de una forma simple
 Plantillas gratuitas para descargar
Página de office online con plantillas modelos para utilizar desde office o sacar
ideas : formularios, facturas, informes, recibos, inventarios, bases de datos y
muchas otras categorías
Word - Microsoft Word Object Library
http://www.recursosvisualbasic.com.ar/htm/tutoriales/word.htm
Visual basic 6.0
 mandar Imagen
Insertar una imagen desde vb hacia un nuevo documento
 Exportar recordset
Formulario que exporta el contenido de un recordset de Ado a un documento
 Pegar imagen en un marcador
Ejemplo que pega el contenido de un picturebox o image en un marcador
 Buscar y reemplazar palabras
Función para poder abrir un documento desde visual basic, y ejecutar el
método Execute del objeto Find, para buscar y reemplazar frases
 Hacer un Timer en vba
Método OnTime del objeto Application , para crear un Timer que ejecute una
tarea cada cierto intervalo de tiempo
 Exportar Word a html
Función para abrir desde visual basic un documento de Microsoft Word y
exportarlo a un nuevo archivo Html con el método SaveAs
 Enviar un Mail desde Word
Ejemplo de como enviar un correo electrónico desde vba usando la referencia a
Mappi para el correo
 Corrector Ortográfico
Rutina para poder utilizar el Corrector de ortografía de word desde una
aplicación Visual basic
 Buscar datos
Ejemplo para poder buscar datos desde visual basic en un documento
 Exportar DataGrid
Muestra de como exportar los registros de un control DataGrid a una tabla de
un documento de Word
 Datagrid a marcador
Ejemplo similar al anterior, pero exporta los datos a un marcador previamente
creado en el documento
 Flexgrid a Word
Función que permite exportar los datos de un control Microsoft FlexGrid
 Word a un archivo de texto
Leer desde visual basic un documento y guardarlo como un archivo en formato
txt o texto plano
 Word a RTF
Ejemplo para exportar un DOC a formato RTF desde vb
 Imprimir
Usar el método PrintOut de vba para imprimir un documeto
 Control Ole
Usar el control Ole para poder cargar y visualizar un .doc desde vb
 Crear un documento
Simple ejemplo que crea un nuevo documento con texto y párrafos
Ejemplo macro con un formulario en Word
http://joseaph.blogspot.mx/2008/11/ejemplo-macro-con-un-formulario-en-word.html
En este ejemplo voy a mostrar cómo hacer un formulario que carga datos en un plantilla de Word
de una forma muy simple.
Voy a empezar mostrando el resultado para que sea más simple entender el código. Tenemos una
plantilla de Word muy sencilla (se puede complicar todo lo que queramos) y queremos que
aparezca un formulario para introducir los datos en él y que se carguen a su vez en el lugar
correspondiente en la plantilla. Como el usuario final puede no tener mucha idea de informática,
hemos creado un nuevo botón en la pestaña "Ver".
Cuando hagamos click en "Formulario Carga Datos" aparecer´el siguiente formulario.
Cuando hagamos click en el botón "OK" los datos se cargarán automáticamente en el documento.
Hasta aquí he mostrado el resultado, ahora voy a contar cómo se hace.
Por un lado tenemos el formulario (sólo hay que dibujarlo):
Por otro el código (basta con hacer doble click en el botón "OK" y luego pegar el siguiente código).
view plainprint?
1. Private Sub OK_Click()
2. Selection.GoToWhat:=wdGoToBookmark, Name:="NombreC"
3. Selection.TypeText Text:=Nombre.Text
4.
5. Selection.GoToWhat:=wdGoToBookmark, Name:="Codigo"
6. Selection.TypeText Text:=Codigo.Text
7.
8. Selection.GoToWhat:=wdGoToBookmark, Name:="Contrato"
9. Selection.TypeText Text:=Contrato.Text
10.
11. Selection.GoToWhat:=wdGoToBookmark, Name:="ERP"
12. Selection.TypeText Text:=ERP.Text
13.
14. Unload UserForm1
15.
16. End Sub
17.
18. Private Sub UserForm_Initialize()
19. 'Con esto cargamos la fecha en el label 6
20. Label6.Caption = Date
21. End Sub
Finalmente, sólo me falta contar cómo agregar un botón en una pestaña. Para ello hay varias
opciones pero quizá la más sencilla sea pinchar en Herramientas->Personalizar.
En la ventana que aparece buscamos en la parte izquierda "Macros", posteriormente pinchamos en
la macro que queramos agregar y la arrastramos a la pestaña en la que deseemos colocarla.
Publicado por Joseen 15:39
Etiquetas: MacrosOffice, VBA
3 comentarios:
Ramón Arista Reyes dijo...
Hola Jose Antonio!!!
Desde hace algun tiempo he tenido una inquietud respecto a un eje tematico,
curiosamente nunca habia buscado nada al respecto en la web (es decir, solo habia
hecho algunos vanos y breves intentos a nivel de ensayo y error) el eje tematico es:
formularios-macro-tabla...
Lo que me parece realemente curioso es que este eje la has posteado desde el año
pasado.. solo que en el sentido inverso (je, je), y mi pregunta es: Es posible
desarrollar una macro que tome diversos archivos generados por el mismo formulario
y apartir de cada uno de estos convertirse en los registros de la tabla?, es decir,
concentrar los datos de varios formularios (archivo) en una sola tabla?
29 de junio de 2009 23:29
ccoosbd dijo...
Hola José,
¿Podrías poner un enlace al código? Sigo los pasos pero falta algo ya que no
funciona.
Saludos
7 de julio de 2011 09:03
Anónimo dijo...
Hola ccoosbd, jose se equivoco en el codigo, debe ser:
Selection.GoTo What:=wdGoToBookmark, Name:="Nombre"
Selection.TypeText Text:=txtnombre.Text
y para que esos datos vayan a la hoja, debes de insertar un marcador: pestaña
insertar, grupo vinculos, marcador. con eso sale.(office 2010), espero que te funciones
saludos.
Peter Chirinos
Visual Basic para Aplicaciones:
Curso Práctico
http://vbacrash.blogspot.mx/p/el-curso-escrito.html
El curso escrito
Esta es una reescritura del Curso Básico de VBA
que publiqué hace unos 15 años atrás. Como el
VBA sigue vigente pensé que sería bueno hacer
una nueva versión del curso que elimine la
palabrería inútil y muchos contenidos de relleno
que tenía el curso anterior. Aquí vamos:
Para que sirve el VBA
En pocas palabras, para programar los componentes de Microsoft Office tales
como Word, Excel, Access, Poower Point y Visio. En este curso los ejemplos serán
solo de Word y Excel. Es un subconjunto casi completo del lenguaje de
programación Visual Basic 6.0. O sea, si tienen instalado el Office o cualquiera de
sus componentes, no necesitan más para programar en VBA.
La advertencia de seguridad: Al abrir macros en Word97 puede negar acceso por la
configuración de seguridad presdeterminada. En este caso hay que ir a
Herramientas, Macros, Seguridad y se cambia a nivel medio como muestra la figura.
Nivel medio significa que avisará antes de ejecutar un macro mostrando una
pantalla de advertencia sobre la posibilidad de virus (como VBA es un lenguaje
completo, se puede encapsular virus dentro de un documento de Office). Cuando
ejecutamos nuestros macros simplemente ponemos "Habilitar macros" después de
la advertencia.
Luego en el Word -por ejemplo- escogeremos Herramientas, Macros, Editor de
Visual Basic y aparecerá lo siguiente:
Este es el entorno de trabajo donde podemos distinguir:
Explorador de proyectos. El explorador de proyectos es una herramienta de
exploración y gestión que muestra una lista jerárquica de cada proyecto abierto.
También muestra cada una de las componentes asociadas con los proyectos, como
los documentos de Word, formularios, módulos de clase y referencias. En palabras
sencillas hay que dejarlo tal como está. A medida que agreguemos objetos a
nuestro progranma irán apareciendo en el explorador y nos servirá para movernos
de un componente a otro.
Ventana de propiedades. La ventana de Propiedades muestra las propiedades para
el objeto activo (Formulario de usuario o control). Ofrece una manera visual de
configurar y modificar propiedades. En la ventana de propiedades , las propiedades
se pueden listar alfabéticamente o por categorías. En palabras sencillas, cuando
agregamos un objeto este tiene varias “propiedades” como su color, tamaño, tipo
de letra, etc. En esta ventana podemos cambiar las propiedades del objeto “activo”
(iluminado) en ese momento.
Barra de herramientas. Es donde aparecen los botones para las funciones mas
usadas, esta justo abajo de la Barra de menús que tiene los menús con todas las
opciones del Visual BAsic Area de trabajo. Es donde colocamos nuestros objetos
(Formularios o controles) y les agregamos código
Como se hacen los programas en Visual Basic:
Los programas en Visual Basic se hacen en dos etapas
a) Se dibujan las pantallas
b) Se coloca código a los objetos
Primer ejemplo: convertidor de
monedas
Para este ejemplo primero dibujaremos las pantallas que en VBA se llaman
Formularios de Usuario (User Forms), asi es que usando la barra de menús
procedemos a Insertar, UserForm, nos aparece lo siguiente:
En nuestra Area de trabajo un formulario llamado UserForm1 (nombre por defecto)
y abajo una caja de herramientas con los componentes que podemos colocar
dentro de ese formulario.
Fijense que la barra superior de UserForm1 está de color azul (iluminada) lo que
indica que es el componente activo en este momento.
Ahora experimentemos con las propiedades de la UserForm1. Primero hagamos
click en la propiedad “Caption” y cambiemos el valor por defecto (UserForm1)
escribiendo encima de eso “Convertidor de Dolares a Pesos)”. Vean como cambia
el título de nuestro formulario.
Seguidamente cambiemos la propiedad “Back color” haciendo click en ella y luego
un click sobre el botón con flecha que aparece a la derecha. Aparecerá una paleta
de colores. Haga click sobre cualquier color y verá como cambia el fondo de
nuestro formulario. Busquen otras propiedades y cambien sus valores. Si no notan
ningún efecto restauren la propiedad a su valor original (con el tiempo se
familiarizarán con cada una de las propiedades disponibles para cada componente
de la caja de herramientas).
Si, se pierde la caja de herramientas, la podrán recuperar fácilmente con “Ver”
“Caja de Herramientas” de la barra del menú. Si no encuentran alguna propiedad
(por ejemplo “Name” recuerden que la ventana de propiedades las puede
mostrar en orden alfabetico o por categorías, busque en ambos lados pulsando en
la ventana correspondiente en la parte superior de las propiedades.
Usaremos tres clases de controles en nuestro
proyecto: labels (etiquetas), textboxes (cajas de dialogo o de texto) y un
commandbutton (botón de comando), todas estos controles se sacan de lacaja de
herramientas de abajo del formulario y cada uno tiene sus propiedades.
Los labels son los marcados con la letra “A” en la caja de herramientas, haciendo
click sobre el icono y luego colocándose sobre el formulario se dibuja, arrastrando
el mouse cambia el tamaño en que desea que aparezca su label. Luego en la
ventana de propiedades cambia la propiedad“Caption” del primer label escribiendo
“Dolares” en lugar de label1. También puede cambiar la propiedad “Name” a
ldolares (por labeldolares). Repita el procedimiento creando otro label con caption
“Pesos” y nombre lpesos (por labeltpesos).
Luego escoja un textbox del la caja de herramientas (el icono con “ab”) y dibujelo al
lado del label ldolares, borrele la propiedad “Caption” (que quede en blanco) y
cambie la propiedad “Name” a tdolares. Con el mismo procedimiento cree
un textbox llamado tpesos al lado del label lpesos.
Luego arrastre un boton de la caja de herramientas (el rectangulo sin nombre) y
dibujelo en el formulario, luego cambiele la propiedad “Caption” a “Borrar”. Si ha
llegado hasta el punto que muestra la figura ya tiene la mitad del programa listo.
Note que en éste ejemplo cambié la propiedad “Backcolor” del formulario y la
propiedad “Font” de los labels a “Bold” y “10 pt”.
Aquí tenemos nuestra pantalla rudimentariamente dibujada. Ahora nos falta poner
el código, para ello debemos pensar “que es lo que queremos que haga el
programa”. En éste caso yo deseo que“cuando escriba una cifra en el textbos de
dolares aparezca su equivalencia en el textbox pesos y viceversa”.
O sea que el programa debe actuar cada vez que escribamos algo en uno de los
textbox y luego de presionar Enter.
Para eso tenemos que poner un código a cada uno de los textbox indicando que
deseamos que ocurra cada vez que escribimos algo y apretamos Enter (eso se
llama un "evento"). Para poner código en el textbox de “tdolares” hacemos doble
click sobre él y aparecerá la “ventana de códigos” con dos ventanillas en la parte
superior; la de la izquierda dirá ldolares (el nombre del objeto) y en la derecha una
lista deplegable con todos los “eventos” permitidos para ese objeto (change, click,
mousedown, etc…). De esa lista escogemos el evento “Exit” (que significa que
presionamos la tecla Enter) y escribimos en la ventana el siguiente código:
Private Sub tdolares_Exit(ByVal Cancel As MSForms.ReturnBoolean)
tpesos.text = Val(tdolares.text) * 500
End Sub
Es decir que cuando escribimos algo en el textbox llamado tdolares y luego
presionamos Enter se calculará el varol equivalente en pesos. Nótese que lo que
escribimos en el textbox llamado tdolares queda almacenado en la
propiedad “tdolares.text”,, le extraemos su valor con val(tdolares), multiplicamos
este valor por 500 y lo asignamos como propiedad “text” al textbox llamado
“tdolares”. Al principio puede parecer enredado pero una vez que nos
acostumbramos a los objetos a los que les cambiamos sus propiedades esto se
convierte en pan comido. Para salir de la ventana de códigos y volver al formulario
simplemente hacemos click en “UserForm1″ del explorador de proyectos (ventana
superior izquierda)
Para el otro textbox (tpesos) también hacemos doble click, escogemos el evento
“exit” y escribimos:
Private Sub tpesos_Exit(ByVal Cancel As MSForms.ReturnBoolean)
tdolares.text = Val(tpesos.text) /500
End Sub
Si está todo correcto no sería mala idea que lo grabaran, haciendo click sobre el
icono del diskette.
Para probarlo, en la barra de herramientas hay tres botones similares a los de una
grabadora. Para que parta el programa presionen el boton correspondiente
al “Play” o bien presionen F5 (da lo mismo).
Para diseñar las pantallas rápidamente podemos Copiar, Pegar, Formato, Alinear a
la izquierda, Espacio Horizontal, Igualar, etc.a nuestros componentes.
Segundo ejemplo: un Formulario en
Word VBA
La automatización de formularios en Word es una de las aplicaciones más útiles del
VBA, mostraré paso a paso como hacer un ejemplo sencillo que puede modificarse
y adaptarse a muchos otros formatos
Botón derecho
Nuevo
Nuevo documento del Word
Cambiar nombre a FormularioConMacros.doc
Herramientas
Opciones
Seguridad
Seguridad de macros (cambiar a medio)
Herramientas
Macro
Macros
Nombre de la macro: formulario1
Macros en: FormularioConMacros.doc (documento)
Crear
insertar
UserForm
(si el cuadro de herramientas no se ve) ver, Cuadro de Herramientas Crear Userform
con 3 labels, 3 textboxes y 1 commandbuttom como muestra la figura siguiente
Volver a FormularioCon Macros.doc
Doble clic en CommandButton1
Debe aparecer
Private Sub CommandButton1_Click()
End Sub
Colocar cursor arriba de End Sub
Escribir el siguiente código (puede hacer un copy-paste)
With Selection
.ParagraphFormat.LineSpacingRule =
wdLineSpaceSingle ‘Coloca espacio de líneas en “espacio simple”
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.Font.Bold = True ‘Coloca negrita
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.Font.Size = 16 ‘Coloca tamaño de letra
en 16
.ParagraphFormat.Alignment =
wdAlignParagraphCenter ‘Alineado al centro
.TypeText Text:=”CERTIFICADO” ‘Escribe texto
.Font.Size = 12 ‘Coloca tamaño de letra
en 12
.TypeParagraph ‘Pasa a linea siguiente
.Font.Bold = False ‘Desactiva
negrita
.ParagraphFormat.Alignment =
wdAlignParagraphLeft ‘alineacion a la izquierda
.TypeParagraph ‘Pasa a linea siguiente
.TypeText Text:=”Certifico que el señor “ ‘Escribe
texto
.Font.Bold = True ‘Activa las negritas ‘Escribe
texto
.TypeText Text:=TextBox1.Text ‘Escribe el
contenido de textbox1.text
.Font.Bold = False ‘Desactiva las
negritas
.TypeText Text:=”, domciliado en “ ‘Escribe
texto
.TypeText Text:=TextBox2.Text ‘Escribe el
contenido de textbox2.text
.TypeText Text:=” teléfono “ ‘Escribe texto
.TypeText Text:=TextBox3.Text ‘Escribe el
contenido de textbox3.text
.TypeText Text:=” es una persona honorable, de buenas
costumbres, “ ‘Escribe texto
.TypeText Text:=” que no consume alcohol y su comportamiento
moral es intachable.” ‘Escribe texto
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeText Text:=” Se extiende el presente certificado a
petición “ ‘Escribe texto
.TypeText Text:=” del interesado con objeto de su postulación
al Opus Dei” ‘Escribe texto
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.Font.Name = “Arial” ‘Cambia el font a
Arial
.Font.Size = 10 ‘Coloca tamaño en 10
.TypeText Text:=”Arica “ ‘Escribe texto
.TypeText Text:=Date$ ‘Escribe la fecha
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.ParagraphFormat.Alignment =
wdAlignParagraphCenter ‘Alineación al centro
.Font.Bold = True ‘Activa negritas
.TypeText Text:=” RR. PP. TOMAS BRADANOVIC S.J. “ ‘Escribe
texto
.Font.Bold = False ‘Desactiva negritas
End With ‘Termina el ciclo Selection
Unload UserForm1 #160;
Clic en “Grabar”
Salir del editor e ir a la página en blanco de Word
Poner mouse sobre barra de herramientas
Boton derecho, personalizar
Macros
Guardar en: FormularioConMacros.doc
Project.NewMacros.formulrio1
Con la ventana “personalizar” abierta
Botón derecho, cambiar imagen del botón
Grabar la página
Eso es todo, haciendo click sobre el nuevo botón se comienza a ejecutar el macro.
No explicaré el programa línea por línea porque se encuentra auto documentado en
los comentarios
Tercer ejemplo: Prototipos en VBA-
Excel
Los he llamado prototipos solo por poner un nombre. Se trata de pequeños
programas hechos en Excel, con propósito pedagógico para mostrar como se
codifican algunas tareas básicas de entrada y actualización de datos.
Se muestran tres ejemplos que pueden servir de base para otros programas
funcionales: una agenda un pequeño programa de inventario y un pequeño
programa de cuenta corriente. No se usan archivos pues se usa la misma hoja de
Excel como soporte para almacenar los datos, esto muestra la versatilidad y
posibilidades de uso del VBA integrado con Excel.
1.- Una Agenda
Se trata de programar una agenda, programa que pida datos personales tales como
nombre, dirección, teléfono, etc. y los almacene en la misma hoja excel
En la hoja Excel se habilitan los macros cambando las opciones de seguridad si es
necesario y se ingresa al entorno de programación con Herramientas, Macros,
Editor de Visual Basic
Una vez allí se escoge Insertar, Userformy usando la caja de herramientas se
colocan los textbox y el command button
En el Command Button se agrega el siguiente código
Private Sub CommandButton1_Click()
indice = Hoja1.Cells(1, 1)
If indice = "" Then
indice = 1
Hoja1.Cells(1, 1) = indice
End If
indice = indice + 1
Hoja1.Cells(1, 1) = indice
Hoja1.Cells(indice, 1) = TextBox1.Text
Hoja1.Cells(indice, 2) = TextBox2.Text
Hoja1.Cells(indice, 3) = TextBox3.Text
Hoja1.Cells(indice, 4) = TextBox4.Text
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox1.SetFocus
End Sub
Listo, eso es todo
2.- Un Inventario
Este prototipo ingresa
nuevos artículos que deja guardados en la hoja Excel y permite hacer ventas
rebajando el saldo. Consta de dos formularios, el principal tiene la ventana para
rebajar las ventas (Insertar, User form)
La programación de los elementos de la form es la siguiente
Para el combobox (se cambió en nombre a ComboNombre)
Private Sub ComboNombre_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Rem al escoger un item del combobox hace lo siguiente
Rem coloca el costo en textbox1
TextBox1.Text = Hoja1.Cells(2, 2)
Rem coloca el precio de venta (lista) en textbox2
TextBox2.Text = Hoja1.Cells(2, 3)
End Sub
Para el Command Button 1 (Agregar artículo)
Private Sub CommandButton1_Click()
Rem para agregar un nuevo articulo
Rem se carga userform2
Load UserForm2
Rem se muestra userforrm2
UserForm2.Show
End Sub
Para el Command Button 2 (Ingresar venta)
Private Sub CommandButton2_Click()
Rem al ingresar la venta
Rem el saldo esta en hoja1.cells de la linea de combo que elegimos
Rem que en la hoja exel seria la posicion combonombre.listindex + 1
Rem recordar el formato Hoja1.Cells(linea,columna)
Rem luego toma el valor (cantidad) almacenado en esa celda y le resta
el valor de textbox3.text
Hoja1.Cells(ComboNombre.ListIndex + 1, 2) =
Hoja1.Cells(ComboNombre.ListIndex + 1, 2) - TextBox3.Text
Rem con eso deja la cantidad rebajada
Rem luego limpia los textbox combo y pone el foco en combonombre
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
ComboNombre.Text = ""
ComboNombre.SetFocus
End Sub
Para Textbox3 (después de ingresar la cantidad vendida)
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Rem calcula el total de la venta y lo coloca en textbox4.text
TextBox4.Text = TextBox2.Text * TextBox3.Text
End Sub
Para cuando se cargue la User Form
Private Sub UserForm_Activate()
Rem llena los valores del combo cada vez que parte el programa
userform_activate
Rem para ello primero parte de la posicion 2
Rem y cambia los valores de z desde 1 a 500
Rem y con el metodo additem llena al combo de valores (nombres de
articulos)
If Hoja1.Cells(1, 1) <> "" Then
For z = 1 To 500
ComboNombre.AddItem Hoja1.Cells(z, 1)
Next z
Rem deja en blanco el combo
ComboNombre.Text = ""
End If
End Sub
Luego se crea la segunda User From con Insertar, Userform
En este caso solos se programa el Command Buttom
Private Sub CommandButton1_Click()
Rem posicion del indice en la celda 1,1
indice = Hoja1.Cells(1, 1)
Rem si el indice es cero se cambia a uno
If indice = "" Then
indice = 1
Hoja1.Cells(1, 1) = indice
End If
Rem incrementa el indice en 1 lugar que es la fila donde debe grabar
indice = indice + 1
Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1
Hoja1.Cells(1, 1) = indice
Rem escribe los contenidos de los textbox en la hoja 1
Rem la fila es el valor del indice y la columna varia segun el
contenido
Hoja1.Cells(indice, 1) = TextBox1.Text
Hoja1.Cells(indice, 2) = TextBox2.Text
Hoja1.Cells(indice, 3) = TextBox3.Text
Hoja1.Cells(indice, 4) = TextBox4.Text
Rem limpia todos los textbox
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Rem coloca el foco en textbox1
TextBox1.SetFocus
End Sub
3.- Una Cuenta Corriente
Este prototipo ingresa nuevas cuentas con sus datos, va ingresando movimientos,
entrega los saldos y emite una cartola de movimientos
El primer form que se ingresa es el que entrega los saldos y permite ir a ingresar
cuentas y cartolas, Insertar, Userform
La programación de los componentes de este form es:
Para el ComboNombre
Private Sub ComboNombre_Click()
Rem al escoger un item del combobox hace lo siguiente
Rem coloca el costo en textbox1
saldo = 0
CodCliente = ComboNombre.ListIndex + 1
TextBox1.Text = Hoja1.Cells(CodCliente, 2)
Rem coloca el precio de venta (lista) en textbox2
TextBox2.Text = Hoja1.Cells(CodCliente, 3)
TextBox3.Text = Hoja1.Cells(CodCliente, 4)
ultimo = Hoja2.Cells(1, 1)
For z% = 2 To ultimo
If CodCliente = Hoja2.Cells(z%, 1) Then
monto = Hoja2.Cells(z%, 4)
If Hoja2.Cells(z%, 5) = "Debe" Then
monto = -1 * monto
End If
saldo = saldo + monto
End If
Next z%
TextBox4.Text = saldo
End Sub
Para el Command Button 1 (Agregar nueva cuenta)
Private Sub CommandButton1_Click()
Rem para agregar nueva cuenta
Rem se carga userform3
Load UserForm3
Rem se muestra userforrm2
UserForm3.Show
End Sub
Para el Command Button 3 (para ir agregando movimientos)
Private Sub CommandButton3_Click()
Rem para agregar un nuevo movimiento
Rem se carga userform2
Load UserForm2
Rem se muestra userforrm2
UserForm2.Show
End Sub
Para el Command Button 4 (para emitir cartola)
Private Sub CommandButton4_Click()
Rem para emitir cartola
Rem se carga userform4
Load UserForm4 Rem se muestra userforrm4
UserForm4.Show
End Sub
Para Text Box 3 (coloca total venta)
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Rem calcula el total de la venta y lo coloca en textbox4.text
TextBox4.Text = TextBox2.Text * TextBox3.Text
End Sub
Para cuando se activa la User Form
Private Sub UserForm_Activate()
Rem llena los valores del combo cada vez que parte el programa
userform_activate
Rem para ello primero parte de la posicion 2
Rem y cambia los valores de z desde 1 a 500
Rem y con el metodo additem llena al combo de valores (nombres de
articulos)
If Hoja1.Cells(1, 1) <> "" Then
For z = 1 To 500
ComboNombre.AddItem Hoja1.Cells(z, 1)
Next z
Rem deja en blanco el combo
ComboNombre.Text = ""
End If
End Sub
Luego Insert, User form para el User Form de Insertar Movimiento
Cuyos componentes programables son
La User Form al activarse (ingresar el movimiento)
Private Sub UserForm_Activate()
Rem llena los valores del combo cada vez que parte el programa
userform_activate
Rem para ello primero parte de la posicion 2
Rem y cambia los valores de z desde 1 a 500
Rem y con el metodo additem llena al combo de valores (nombres de
articulos)
If Hoja1.Cells(1, 1) <> "" Then
For z = 1 To 500
ComboNombre.AddItem Hoja1.Cells(z, 1)
Next z
Rem deja en blanco el combo
ComboNombre.Text = ""
End If
End Sub
El Comand Button1
Private Sub CommandButton1_Click()
Rem posicion del indice en la celda 1,1
indice = Hoja2.Cells(1, 1)
Rem si el indice es cero se cambia a uno
If indice = "" Then
indice = 1
Hoja2.Cells(1, 1) = indice
End If
Rem incrementa el indice en 1 lugar que es la fila donde debe grabar
indice = indice + 1
Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1
Hoja2.Cells(1, 1) = indice
Rem escribe los contenidos de los textbox en la hoja 1
Rem la fila es el valor del indice y la columna varia segun el
contenido
Hoja2.Cells(indice, 1) = ComboBox2.ListIndex + 1
Hoja2.Cells(indice, 2) = TextBox1.Text
Hoja2.Cells(indice, 3) = TextBox2.Text
Hoja2.Cells(indice, 4) = TextBox3.Text
Hoja2.Cells(indice, 5) = ComboBox1.Text
Rem limpia todos los textbox
TextBox2.Text = ""
TextBox3.Text = ""
Rem coloca el foco en textbox1
ComboBox2.SetFocus
End Sub
Luego el User Form 3 para agregar nuevas cuentas, Insert, User Form
Cuyo código asl activarse es:
Private Sub UserForm_Activate()
ComboBox1.AddItem "Haber"
ComboBox1.AddItem "Debe"
ComboBox1.Text = ComboBox1.List(1)
TextBox1.Text = Date
ComboBox2.SetFocus
If Hoja1.Cells(1, 1) <> "" Then
For z = 1 To 500
ComboBox2.AddItem Hoja1.Cells(z, 1)
Next z
Rem deja en blanco el combo
ComboBox2.Text = ""
End If
End Sub
Para el Command Button 1 (ingresar cuenta)
Private Sub CommandButton1_Click()
Rem posicion del indice en la celda 1,1
indice = Hoja1.Cells(1, 1)
Rem si el indice es cero se cambia a uno
If indice = "" Then
indice = 1
Hoja1.Cells(1, 1) = indice
End If
Rem incrementa el indice en 1 lugar que es la fila donde debe grabar
indice = indice + 1
Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1
Hoja1.Cells(1, 1) = indice
Rem escribe los contenidos de los textbox en la hoja 1
Rem la fila es el valor del indice y la columna varia segun el
contenido
Hoja1.Cells(indice, 1) = TextBox1.Text
Hoja1.Cells(indice, 2) = TextBox2.Text
Hoja1.Cells(indice, 3) = TextBox3.Text
Hoja1.Cells(indice, 4) = TextBox4.Text
Rem limpia todos los textbox
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Rem coloca el foco en textbox1
TextBox1.SetFocus
End Sub
Finalmente se inserta el User From 4 para emitir cartola Insert, User Form
Solo contiene un Combo Box con el siguiente código
Private Sub UserForm_Activate()
If Hoja1.Cells(1, 1) <> "" Then
For z = 1 To 500
ComboBox1.AddItem Hoja1.Cells(z, 1)
Next z
Rem deja en blanco el combo
ComboBox1.Text = ""
End If
End Sub
indice = indice + 1
Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1
Hoja1.Cells(1, 1) = indice
Rem escribe los contenidos de los textbox en la hoja 1
Rem la fila es el valor del indice y la columna varia segun el
contenido
Hoja1.Cells(indice, 1) = TextBox1.Text
Hoja1.Cells(indice, 2) = TextBox2.Text
Hoja1.Cells(indice, 3) = TextBox3.Text
Hoja1.Cells(indice, 4) = TextBox4.Text
Rem limpia todos los textbox
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Rem coloca el foco en textbox1
TextBox1.SetFocus
End Sub
Y eso sería todo
Como programar en VBA sin conocer
el modelo de objetos
El modelo de objetos de VBA (Microsoft Foundation Classes) contiene todas las
funciones y herramientas que se necesitan para programar cualquier componente
del Officce, el problema que es enorme y solo examinar el complicado árbol de
objetos, clases y subclases tomaría montenes de tiempo.
Existe un truco que permite averiguar de manera rápida que objetos hay que usar y
como para distintas tareas, esto se hace usando la grabadora de macros.
Abrimos un documento en blanco y nos vamos a Herramientas, Macros, Grabar
Nueva Macro, Aceptar (quedará grabado son el nombre por defecto Macro1).
Aparecerá la imagen de una mini "grabadora" que indica que estamos grabando el
macro.
Supongamos que queremos ver como se programa para acceder a los encabezados
y pies de página, como estamos grabando la macro hacemos la operación que
queremos automatizar de modo manual, en este caso escogemos Ver, Encabezados
y pies de página, escribimos un encabezado, nos cambiamos al pie, escribimos un
pie (cualquiera, solo de ejemplo) y hacemos clic en el botón que detiene la
grabadora.
Luego vamos a Herramientas, Macros, Macros, Editar y veremos todo el código ya
hecho, listo para ser cortado y pegado en nuestro programa, en este caso sería:
Sub Macro2()
‘
‘ Macro2 Macro
‘ Macro grabada el 24-12-98 por TOMAS BRADANOVIC
‘
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow.
_
ActivePane.View.Type = wdOutlineView Or
ActiveWindow.ActivePane.View.Type _
= wdMasterView Then
ActiveWindow.ActivePane.View.Type = wdPageView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.TypeText Text:= _
“Tomás Bradanovic, Consultoría en Proyectos de Inversión Públ”
Selection.TypeText Text:=”ica”
Selection.TypeParagraph
Selection.HeaderFooter.Shapes.AddLine(72#, 93.6, 540#, 93.6).Select
If Selection.HeaderFooter.IsHeader = True Then
ActiveWindow.ActivePane.View.SeekView
= wdSeekCurrentPageFooter
Else
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldPage
NormalTemplate.AutoTextEntries(“Página X de Y”).Insert
Where:=Selection. _
Range
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
Como pueden ver la grabadora de macros escribió por nosotros todo el código que
necesitamos, incluso ahora lo podemos analizar y oprimizar para nuestra aplicación
en particular. Esata es una manera muy rápida y práctica de ir aprendiendo el
modelo de objeto solo a medida que se va necesitando.
na aplicación práctica: Diseño de un formulario en
VBA
http://www.bradanovic.cl/pcasual/vbabasico.htm
Nuestra primera aplicación práctica consistirá en llenar un formulario que tiene datos fijos y otros
variables. En este ejemplo programaremos un (tétrico) certificado de autopsia. Cualquiera que
tenga nociones del Visual Basic "normal" lo podrá programar sin mayor dificultad, aún alguien con
cero conocimiento podría hacerlo, claro que se tendrá que cabecear un poco, pues una explicación
demasiado detallada resultaría aburrida para la audiencia promedio de esta página.
Lo primero es abrir un nuevo documento del word y con "ver" "barras de herramientas"
"Formularios" hacemos aparecer la barra de formularios que nos permitirá colocar los campos
variables, la barra es más o menos así:
Luego escribimos el formulario y para insertar los campos variable (indicados con sombra) usamos
el primer botón de la barra de Formularios, el que tiene las letras "ab", si al hacer click en el botón
"ab" aparentemente no pasa nada, es que necesitamos sombrear los campos para verlos con más
facilidad, para ello usamos el penúltimo botón de sombreado. Así nos queda un documento como
este:
Una vez escrito e insertados los campos le ponemos nombres, seleccionando cada campo, click
con botón derecho, Propiedades, Nombre. Así los campos quedan con nombres descriptivos como:
tribunal, ciudad, fecha, medico, proceso, fallecido, etc.
Luego nos vamos a "Herramientas" "Macros" "Visual Basic" como muestra la figura:
Con lo que aparece el entorno de desarrollo del VBA, Con "Insertar" "Formulario" insertamos el
UserForm1 como muestra la figura y luego desde la caja de herramientas escogemos los label, los
combobox commandbuttom y los textbox, que colocamos en el formulario tal como muestra la
figura siguiente:
Ya estamos casi listos y solo nos resta programar los distintos componentes que hemos colocado
en el formulario, para colocar el código simplemente hacemos doble click sobre el componente y
aparecerá una ventana con el privatesub (....) end sub, entre esas dos instrucciones (que las
coloca el entorno) escribimos nuestros códigos, que en este caso podrían ser algo asi:
Private Sub CommandButton1_Click()
rem esta es la instrucción cuando se apreta el botón "Ok"
rem una vez ingresados todos los datos
rem sirve para llenar los campos variables
Selection.GoTo What:=wdGoToBookmark, Name:="tribunal"
Selection.TypeText Text:="PRIMER"
Selection.GoTo What:=wdGoToBookmark, Name:="ciudad"
Selection.TypeText Text:="ARICA"
Selection.GoTo What:=wdGoToBookmark, Name:="fecha"
Selection.TypeText Text:=TextBox1.Text
Selection.GoTo What:=wdGoToBookmark, Name:="medico"
Selection.TypeText Text:=ComboBox1.Text
Selection.GoTo What:=wdGoToBookmark, Name:="rol"
Selection.TypeText Text:=TextBox3.Text
Selection.GoTo What:=wdGoToBookmark, Name:="fallecido"
Selection.TypeText Text:=TextBox2.Text
Selection.GoTo What:=wdGoToBookmark, Name:="juez"
Selection.TypeText Text:=ComboBox2.Text
Selection.GoTo What:=wdGoToBookmark, Name:="secretario"
Selection.TypeText Text:=ComboBox3.Text
Selection.GoTo What:=wdGoToBookmark, Name:="medico2"
Selection.TypeText Text:=ComboBox1.Text
Unload UserForm1
End Sub
Private Sub UserForm_Initialize()
rem con esto le damos valores a los label y llenamos los combos
UserForm1.Caption = "Autopsia"
Label1.Caption = "MEDICO" 'combo1
Label2.Caption = "JUEZ" 'combo2
Label3.Caption = "SECRETARIO" 'combo3
Label4.Caption = "MOVIMIENTO" 'combo4
Label5.Caption = "FECHA" 'textbox1
Label6.Caption = "FALLECIDO" 'textbox2
Label7.Caption = "ROL" 'textbox3
Label8.Caption = "" 'textbox4
Label9.Caption = "" 'textbox5
Label10.Caption = "" '´textbox6
TextBox4.Visible = False
TextBox5.Visible = False
TextBox6.Visible = False
TextBox1.Text = Date
ComboBox4.Text = "SUM SOLICITA INF AUTOPSIA"
ComboBox1.AddItem "CARLOS VILLAVICENCIO SILVA"
ComboBox1.AddItem "ADRIANA BARRIENTOS ESPINOZA"
ComboBox2.AddItem "JORGE QUIÑONES GARAT"
ComboBox2.AddItem "HECTOR GUTIERREZ MASSARDO"
ComboBox3.AddItem "HECTOR GUTIERREZ MASSARDO"
ComboBox3.AddItem "JULIO MAZUELOS RAMOS"
ComboBox1.Text = ComboBox1.List(0)
ComboBox2.Text = ComboBox2.List(0)
ComboBox3.Text = ComboBox3.List(0)
End Sub
Por último para colocar un botón que haga partir el macro usamos "Herramientas" "Personalizar"
"Comandos" "Macros", deberá aparecer algo más o menos así:
Con el botón izquierdo arrastramos el macro que aparece en la ventana de comandos hacia
cualquier barra de herramientas (si no aparece ningún macro hay que buscar otras ubicaciones en
el combo inferior "Guardar en" ). Luego para cambiar el aspecto del botón editamos sus
propiedades haciendo clic derecho sobre él.
Finalmente probamos que todo funcione Ok (haciendo clic sobre el botón debe partir el macro y
funcionar correctamente) y grabamos todo como una plantilla, (con "Guardar Como") de modo que
cada vez que la abramos se genere un documento diferente (no se sobreescribe). Bueno, este es
solo un ejemplo básico pero perfectamente se pueden hacer formularios usando tablas, validando
las entradas que hace el usuario y mil pequeños detalles que pueden ir agregando ustedes mismos
para practicar. ¿Vieron que fácil es?
La plantilla completa, con unos pocos adornos se puede bajar haciendo Clic Aquí
Conectando un documento Word con una BD Access
http://www.bradanovic.cl/pcasual/vbayaccess.html
En el siguiente ejemplo se asume que tenemos una base de datos
Access llamada DataBase.mdb y que está almacenada en la carpeta
C:DataBaseFolder. se asume también que la base de datos contiene
una tabla llamada Table_1 y que esa tabla contiene dos campos
llamados Field_1 y Field_2. Finalmente se asume que Field_1 es un
campo numérico mientras que Field_2 es un campo de texto.
El código revisa el valor en Field_1. y si este valor no es cero se coloca
el texto de Field 2 en el documento activo de Word, en la posición del
cursor
En una situación real podría ser necesario tener marcadores en el
documento (así como una plantilla que los contenga) en lugar de insertar
los ítem en la posición del cursor
Para que el código funcione se debe establecer una referencia en la
plantilla del Word a Microsoft DAO 3.51 Object Library and Microsoft
Datasource Interfaces. Para hacer esto se ingresa a Herramientas,
Macros, Editor de Visual Basic y Referencias
Sub GetDataFromDataBase()
'reserva memoria para el objeto database así como para el registro activo
Dim myDataBase As Database
Dim myActiveRecord As Recordset
'abre la Base de datos
Set myDataBase = OpenDatabase("C:DataBaseFolderDatabase.mdb")
'accesa al primer registro de la tabla
Set myActiveRecord = myDataBase.OpenRecordset("Table_1", dbOpenForwardOnly)
'busca a través de todos los registros hasta llegar al end-of-file
Do While Not myActiveRecord.EOF
'si el campo #1 contiene un valor distinto de cero
'inserta el valor del campo #2 en el documento
'en la posición actual del cursor
If myActiveRecord.Fields("Field_1") <> 0 Then
Selection.InsertAfter myActiveRecord.Fields("Field_2")
End If
'accesa el registro siguiente
myActiveRecord.MoveNext
Loop
'finalmente cierra la base de datos
myActiveRecord.Close
myDataBase.Close
End Sub
Créditos
Este sencillísimo y práctico ejemplo está traducido casi al pie de la letra de un tip dado por
Bill Cohan, uno de los mejores expertos en VBA que conozco y que tiene muy buena
voluntad para ayudar a los novatos en el newsgroup microsoft.public.word
Curso de VBA Excel
http://cursovisualexcel.wordpress.com/ejemplos-de-macros/
En esta página iremos insertando macros y códigos que pueden servirle de ayuda.
Macro para solicitar confirmación de salir de Excel.
‘macro que solicita al usuario que confirme salir de Excel
Private Sub salir()
If msgbox(“¿Desea salir de Excel?”,vbQuestion+ vbYesNo)=vbYes Then
Application.quit
End If
End Sub
Macro para guardar archivo seleccionando ubicación
Sub guardar_archivo()
Dim stArchivo
stArchivo = Application.GetOpenFilename(“Hoja de Excel , *.xls*”, _
, “Seleccione archivo “)
End Sub
Macro para guardar archivos en otro formato
Sub guardar_archivo_otro()
‘con esta macro guardamos el archivo con la fecha y hora actual y formato csv
Dim nombre,nombrearch,hoja,ruta
nombre = Format(Now,“dd-mm-yy hh.mm.ss”)
ruta = ActiveWorkbook.Path
nombrearch = ActiveWorkbook.Name
hoja = ActiveSheet.Name
ActiveWorkbook.SaveAs Filename:=ruta & “” & hoja & nombre & “.csv”, FileFormat:=xlCSV
ActiveSheet.SaveAs ruta & “” & nombrearch & nombre & “.xlsm”
End Sub
Copiar rango de una hoja a otra
Si queremos que se quiera copiar los rangos de la hoja activa de una hoja a otra ejecutariamos la macro
siguiente:
Option Explicit
Dim f, c
Public Sub CopiarRango()
ActiveCell.CurrentRegion.Select
f = ActiveCell.Row
c = ActiveCell.Column
Selection.Copy
Sheets(“Hoja2″).Activate
Cells(f, c).Activate
ActiveSheet.Paste
End Sub
Cerrar libro Excel (guardar cambios)
ActiveWorkbook.Close
ActiveWorkbook.Close Savechanges:=True
ActiveWorkbook.Close(True)
Cerrar libro Excel (sin guardar cambios)
ActiveWorkbook.Close(False)
ActiveWorkbook.Close Savechanges:=False
Cerrar libro Excel (variable, sin guardar cambios)
Application.DisplayAlerts = False Windows(Libro_mayor).Close Application.DisplayAlerts = True Abrir libro
Excel (ruta fija) Workbooks.Open FileName:=”C:TrabajoInforme.xls”
Desplazarnos a la última hoja del libro
Sub ultima_hoja()
Sheets(Sheets.Count).Select
End Sub
Desplazarnos a la primera hoja del libro
Sub primera_hoja()
Sheets(1).Select
End Sub
Copiar el contenido seleccionado en otra hoja
Sub CopiaColumnas()
Dim mirango As Range
Dim col As Range
Dim NuevaHoja As Worksheet
Dim i As Integer
Set mirango = Selection
Worksheets.Add
i = 0
For Each col In mirango.Columns
col.Copy ActiveSheet.Range(“A1″).Offset(, i)
i = i + 1
Next col
End Sub
Macro para crear índices de hojas en libros
Private Sub Worksheet_Activate()
Dim cHoja As Worksheet
Dim L As Long
L = 1
With Me
.Columns(1).ClearContents
.Cells(1,1) = “INDICE”
.Cells(1,1).Name = “Indice”
End With
For Each cHoja In Worksheets
If cHoja.Name <> Me.Name Then
L = L + 1
With cHoja
.Range(“A1″).Name = “Inicio” & cHoja.Index
.Hyperlinks.Add Anchor:=.Range(“A1″), Address:=” “, SubAddress:=”Indice”,TextToDisplay:=”Volver al índice”
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=” “, SubAddress:=”Inicio” & cHoja.Index,
TextToDisplay:=cHoja.Name
End If
Next cHoja
End Sub
Macro para imprimir hoja activa con datos
Sub macro imprimir_ha()
Range(“A1″) = “Lo que sea”
‘Imprimimos la hoja de excel con una sola copia
ActiveWindow.SelectedSheets.PrintOutCopies:=1
End Sub
Buscar la última fila vacía
Sub ultimafila()
‘variable donde almacenamos el número de fila
Dim ultima As Long
‘vamos subiendo por la columna A desde la última fila
ultima = Range(“A65536″).End(xlUp).Row
‘le sumamos una porque queremos la 1ªfila vacía
ultima = ultima + 1
‘seleccionamos si queremos otra columna cambiar el número
Cells(ultima,1).Select
End Sub
Encontrar última fila (en columna especificada)
Dim intUltimaFila As Range
If WorksheetFunction.CountA(Columns(1)) > 0 Then
Set intUltimaFila = Range(“65536″).End(xlUp)
MsgBox intUltimaFila.Address
End If
Suprimir filas vacías
intLastRow = Columns(“A:A”).Range(“A65536″).End(xlUp).Row
For r = intLastRow To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Suprimir filas vacías
Dim intNumDeFilas As Long
Selection.SpecialCells(xlCellTypeLastCell).Select
intNumDeFilas = Selection.Row
For i = 1 To intNumDeFilas
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next
Suprimir filas vacías
intUltimaFila = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count
For r = intUltimaFila To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Suprimir filas por condición
Dim rngString As Range
Do
Set rngString = Cells.Find(“Aglis”,MatchCase:=False,_
LookAt:=xlPart, LookIn:=xlValues)
If Not rngString Is Nothing Then
rngString.EntireRow.Delete
End If
Loop Until rngString Is Nothing
Suprimir filas vacías por dos condiciónes X, Y
For i = intUltimaFila To 1 Step -1
Let strTest= Application.Cells(i,2)
If strTest<> “X” And strTest<> “Y” Then Rows(i).Delete
Next i
Métodos abreviados de teclado en Excel
Límites de Excel
Número total de columnas disponibles en Excel.
 Límite Excel 2003:256 (2^8)
 Límite Excel 2007:16.384 (2^14)
Número total de filas disponibles en Excel.
 Límite Excel 2003:65.536 (2^16)
 Límite Excel 2007:el 1.048.576 (2^20)
Las celdas por hoja es la multiplicación de las filas por las columnas.
Un libro puede tener un número variable de hojas,según nuestras necesidades.El límite estaba en 256 y está
ahora en 1024.
Número total de hojas disponibles en Excel.
 Límite Excel 2003:256 (2^8)
 Límite Excel 2007:1.024 (2^10)
Cantidad total de memoria del PC que Excel puede utilizar.
 Límite Excel 2003:1GB.
 Límite Excel 2007:2 GB.
Número de colores únicos permitido en un solo libro de trabajo.
 Límite Excel 2003:56 (color puesto en un índice)
 Límite Excel 2007:4.294.967.296 (casi 4300 millones,color 32-bit)
Número de condiciones condicionales del formato en una celda.
 Límite Excel 2003:3 condiciones
 Límite Excel 2007:Limitado por memoria disponible
Número de niveles para ordenar en una lista o una tabla.
 Límite Excel 2003:3
 Límite Excel 2007:64
Número de datos mostrados en el Autofiltro.
 Límite Excel 2003:1.000
 Límite Excel 2007:10.000
Número total de caracteres que puede exhibir una celda.
 Límite Excel 2003:1.024 (cuando se ajusta a formato el texto)
 Límite Excel 2007:32.768 o tanto como quepa en la celda (sin importar el formato)
Número de caracteres por celda que el Excel puede imprimir.
 Límite Excel 2003:1.024
 Límite Excel 2007:32.768
Número total de los estilos únicos de la celda en un libro de trabajo
(combinaciones de todo el formato de la celda).
 Límite Excel 2003:4000
 Límite Excel 2007:65.536
Longitud máxima de fórmulas (en caracteres).
 Límite Excel 2003:carácteres 1.024
 Límite Excel 2007:carácteres 8.192
Número de niveles de anidación que Excel permite en fórmulas.
 Límite Excel 2003:7
 Límite Excel 2007:64
Número máximo de discusiones a una función.
 Límite Excel 2003:30
 Límite Excel 2007:255
Número máximo de artículos que encuentra el comando “buscar todos”.
 Límite Excel 2003:~64k (65472)
 Límite Excel 2007:~2 mil millones
Número de filas permitidos en una tabla dinámica.
 Límite Excel 2003:65.536
 Límite Excel 2007:1.048.576
Número de columnas permitidoen una tabla dinámica.
 Límite Excel 2003:255
 Límite Excel 2007:16.384
Número máximo de artículos únicos dentro de un solo campo de una
tabla dinámica.
 Límite Excel 2003:32.768
 Límite Excel 2007:1.048.576
Longitud del nombre de MDX para un artículo de una tabla dinámica;
también la longitud de la secuencia para una tabla dinámica
emparentada.
 Límite Excel 2003:255 caracteres
 Límite Excel 2007:32.768
Longitud a la cual se truncan los campos que etiquetan una tabla
dinámica; esto también incluye limitaciones de la longitud del subtítulo.
 Límite Excel 2003:255
 Límite Excel 2007:32.768
El número de campos (según lo visto en la lista del campo) que una sola
tabla dinámica puede tener.
 Límite Excel 2003:255
 Límite Excel 2007:16.384
Número de celdas que pueden depender de un solo rango antes que
Excel necesite hacer cálculos completos en vez de cálculos parciales
(porque no puede seguir las dependencias requeridas para hacer
cálculos parciales).
 Límite Excel 2003:8.192
 Límite Excel 2007:Limitado por memoria disponible
El número de rangos diversos en una hoja que pueden tener
dependencias antes de que Excel necesite hacer cálculos completos en
vez de cálculos parciales (porque no puede seguir las dependencias
requeridas para hacer cálculos parciales).
 Límite Excel 2003:65.536
 Límite Excel 2007:Limitado por memoria disponible
Número de fórmulas en conjunto en una hoja de trabajo que pueden
referir a otra hoja de trabajo.
 Límite Excel 2003:65.536
 Límite Excel 2007:Limitado por memoria disponible
Número de categorías que las funciones personalizadas pueden
encapsular.
 Límite Excel 2003:32
 Límite Excel 2007:255
Número de caracteres que se pueden actualizar en una referencia
externa que no pertenece al libro de trabajo.
 Límite Excel 2003:255
 Límite Excel 2007:32.768
Número de filas de una o varias columnas que se pueden referir en una
fórmula matricial (array formula).
 Límite Excel 2003:65.335
 Límite Excel 2007:No hay límites.
Número de caracteres que se pueden almacenar y exhibir en una celda
ajustada a formato de texto.
 Límite Excel 2003:255
 Límite Excel 2007:32.768
Macro que elimina las barras de desplazamiento
Sub elimina_barra()
With ActiveWindow
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
End With
End Sub
Macro que protege el libro y la hoja
Sub proteger()
ActiveWorkbook.Protect Password:=”1234″
Sheets(“Hoja1″).ProtectPassword:=”1234″
End Sub
Calculo del NIF
Esta función calcula el NIF (Número de Identificación Fiscal).
Function nif(dni As Long) As String
nif = Mid(“TRWAGMYFPDXBNJZSQVHLCKE”, (dni Mod 23) + 1, 1)
End Function
Share this:
 Twitter1
 Facebook2
 Correo electrónico
 Google

Me gusta:
VBA de Excel – ejemplos
prácticos de macros
http://www.xltoday.net/vba_ejemplos-asp
na de las utilidades principales de VBA es la de automatizar tareas cotidianas, como por
ejemplo crear un atajo (del teclado) para la función de ‘Pegar como valor’ en Excel.
Estas pequeñas aplicaciones suelen denominarse ‘macros’, pero Excel VBA también sirve
para la programación de aplicaciones más complejas, como servicios de bases de datos y la
manipulación de archivos.
Ejemplos de macros VBA de Excel
Esta lista de ejemplos VBA de Excel recopila algunas pequeñas aplicaciones de código VBA.
Recuerda – haz una copia de seguridad antes de aplicar código VBA a tus archivos.
Excel y otros programas
Abrir Excel desde VB Método para abrir-copiar-modificar-cerrar Excel desde VB.
Marcador de teléfono Cómo marcar el teléfono desde Excel (API).
Importar texto de Word a Excel
Aplicamos la función ‘Create Object’ de VBA para importar textos
desde Word.
Macro para pegar celdas Excel en
tabla Word
Mandar celdas Excel a una tabla nuevo de Word.
Importar celdas de Excel a Excel
ADO de Excel VBA nos deja conectar con otro libro Excel para
importar datos.
Excel y bases de datos
Access a Excel (ADO) Importar (ADO) una tabla Access a Excel.
Crear/modificar archivo de texto Código VBA – archivo de texto como base de datos.
Importar dBase IV a Excel Importar una base de datos dBase IV a una hoja Excel.
Abrir archivo de texto en Excel Ejemplo VBA cómo abrir archivos planos en Excel.
Excel y Outlook
Excel por e-mail Mandar hoja Excel por e-mail.
Importar datos de Outlook a Excel Importar datos de Outlook a Excel. (VBA)
Libros y hojas Excel
Libros Libros,hojas etc.
Hojas Código para insertar y ordenar las hojas Excel .
Formatos Formatear celdas en Excel (VBA).
Filas VBA: Trabajar con filas.
Columnas VBA: Trabajar con columnas.
Repasar archivos/carpeta Método VBA Excel para repasar varios archivos de una carpeta.
Colores y filtros en Excel
Colores Colores y Excel VBA, breve repaso.
Colorear celdas al hacer click Un evento de la hoja para colorear celdas Excel seleccionadas.
Filtrar con colores Truco para añadir colores al Autofiltro de Excel.
Scrollrow – el rango visible Devolver el rango visible de la hoja Excel de la pantalla.
Vínculos y acceso en Excel
Acceso a hojas Restringir acceso a una o varias hojas de un libro Excel.
Enlaces a todas las hojas Crear lista de enlaces a cada hoja del libro Excel.
Crear archivos de cada hoja Crear archivo independiente de cada hoja Excel.
Eliminar vínculos Eliminar vínculos externos/a otras hojas.
Información del sistema o usuario
Objeto ‘Application’ El objeto Application de Excel VBA nos da información.
País y idiomas del usuario Ejemplo VBA: Devolver el país del usuario.
Funcionalidad añadida
El diálogo ‘Abrir archivo’ Abrir otro libro Excel a través del diálogo VBA ‘Abrir’.
Ejemplos del messagebox El messageboxde VBA presenta información/interactua.
Explorador de informes Explorar informes desde un Panel Principal.
Reloj Crear un reloj en Excel empleando el OnTime.
Barra de progreso Crear una barra de progreso en el StatusBar.
Casilla de verificacion Evento Change para simular una casilla de verificación.
Sistema de ayuda Emplear el evento Change para proporcionar ayuda al usuario.
Temporizador El temporizador de Excel.
Método WAIT Hacer que el código VBA pare durante un tiempo.
Imprimir
Incluir función VBA Excel para
imprimir
Funciónes para que el usuario pueda imprimir las hojas Excel
cómodamente.
Excel y VBA
Copiar/exportar módulos VBA Ejemplo VBA para exportar módulos.
Funciones
Calcular dígitos de control Comprobar una cuenta bancaria española.
Buscar INSTR Utilizar la función INSTR para filtrar una lista en Excel.
Sumar un rango variable Aplicar fórmulas de Excel en VBA.
Visual Basic para Aplicaciones:
Curso Práctico
http://vbacrash.blogspot.mx/
NUEVO! el curso en videos
El curso de Visual Para Aplicaciones ahora está disponible en nuevo formato de videos
mucho más facil de seguir. En este curso se enseña programación práctica, no para
informáticos sino para personas comunes y corrientes interesadas en aprender a
pogramar cualquier componente del Office, en este curso nos enfocamos principalmente a
programar Word y Exel.
¿A quien sirve este curso? a cualquiera que necesite mejorar su productividad usando
Office programando tareas repetitivas. Abogados; notarios; doctores; comerciantes;
oficinistas y muchas otras personas pueden aprender a programar usando aplicaciones
comunes de las que la mayoría de las personas no sospecha su potencial.
No se necesita experiencia previa porque el curso parte desde cero, solamente ganas
de aprender haciendoque es el metodo de este curso.
Los invito a ver el trailer de introducción
al curso
MÓDULO 1: lo básico
En los cuatro videos del módulo 1 aprenderá algunos hechos básicos sobre VBA: para
qué sirve y como se hacen los programas con dos ejemplos prácticos de programación en
Word. El manejo de los conceptos de este primer módulo deja al alumno en condiciones
para seguir aprendiendo solo si así lo prefiere, tiene lo básico que se necesita para
empezar a aprender el lenguaje en una aproximación práctica e intuitiva.
Clase 0: Introducción
En esta clase veremos tres ejemplos de programa hecho en VBA. El primero (de baja
complejidad) es una formulario o carta-tipo programado dentro de un documento del
Word, con texto fijo y otros textos variables, el ejemplo es un certificado pero puede
aplicarse en muchos otros documentos o formularios, en la clase 3 se muestra como
hacerlo.
El segundo ejemplo (de complejidad madia) es un programa de control de una flota de
camiones, que lleva muchos controles usando varios esquemas de cuenta corriente.
El tercer ejemplo es el control de un bar (complejidad alta) que lleva varios controles de
cuenta corriente y controles de inventario. Solo se muestran como ejemplo para dar una
idea de la complejidad que se puede alcanzar programando una simple hoja de cálculo
Excel.
Clase 1: programar un conversor de monedas (creación de las
pantallas)
Nuestro primer programa es un conversor de monedas codificado dentro de un
documento de Word. Es un ejemplo muy sencillo pero a partir de el se puede aprender
casi todo lo básico que se necesita saber para comenzar a programar en VBA. En este
módulo veremos como se diseña una pantalla y como se le agregan los componentes
usando el entorno visual.
Desafío: diseñe una pantalla como la que se muestra a continuación
(Ya sé que no está muy bonita, pero es solo para que practiquen con los componentes y
sus propiedades)
Intermedio: algunas cosas básicas sobre las variables y sus nombres.Antes de
entrar a programar les explicaré que son las variables y como deben usarse, esto sirve de
referencia para las clases siguientes pero si se quiere terminar rápido el conversor de
monedas se pueden saltar esta lección y pasar a la clase 3 directamente.
Clase 2: programar un conversor de monedas (programando los
componentes)
En esta clase se agrega código a los componentes del conversor de monedas y se
prueba para ver si funciona. También se puede ver como se depuran los errores.
Clase 3: programar un formulario o carta-tipo
En esta clase se programa una carta-tipo, la misma que se muestra al comienzo de este
curso, que puede servir de base para crear cualquier tipo de documentos automatizados.
MÓDULO 2: lo intermedio
En los videos siguientes aplicaremos lo aprendido en el Modulo 1 programando tres
prototipos de programa para una Agenda, un Inventario y una Cuenta Corriente
considerando que son los tres esquemas más comunes en que se guarda la información,
los prototipos no son operativos para una aplicación real pero si tienen el esqueleto del
código necesdario para estas aplicaciones o cualquiera que se ajuste a alguno de
esos esquemas para almacenar, procesar y entregar información.
Intermedio: que son los prototipos
En esta clase se explica que son los prototipos y para que sirven
Clase 4: prototipo de una agenda
Clase 5: prototipo de un inventario
Clase 6.1: prototipo de Cuenta Corriente: como funciona
Clase 6.2: prototipo de Cuenta Corriente: el código
Como Crear un Formulario en
Word VBA
http://aricachile.wordpress.com/article/como-crear-un-formulario-en-word-vba-lyuza29o3r5u-29/
Paso a paso
August 18, 2010
Print Article
Citation
, XML
 Email


Authors
 Bradanovic Tomas
Abstract
LA automatización de formularios en Word es una de las aplicaciones más útiles y poderosas
del VBA, mostraré paso a paso como hacer un ejemplo sencillo que puede modificarse y
adaptarse a muchos otros formatos
Paso a paso
Descargar FormularioSencillo.txt desde AQUI
Abrir una carpeta llamada Formulario
Copiar FormularioSencillo.txt a la carpeta
Botón derecho
Nuevo
Nuevo documento del Word
Cambiar nombre a FormularioConMacros.doc
Herramientas
Opciones
Seguridad
Seguridad de macros (cambiar a medio)
Herramientas
Macro
Macros
Nombre de la macro: formulario1
Macros en: FormularioConMacros.doc (documento)
Crear
Sub formulario1()
‘
‘ formulario1 Macro
‘ Macro creada el 26/07/2010 por INTEL
‘
End Sub
Escribir arriba del End Sub
UserForm1.show
Insertar
UserForm
(si el cuadro de herramientas no se ve) ver, Cuadro de Herramientas
Crear Userform con 3 labels, 3 textboxes y 1 commandbuttom
como muestra la figura siguiente
Abrir FormularioSencillo.txt
Colocar el cursor sobre el texto
Boton derecho, Seleccionar todo.Botón derecho, Copiar
Cerrar
Volver a FormularioCon Macros.doc
Doble clic en CommandButton!, debe aparecer
Private Sub CommandButton1_Click()
End Sub
Colocar cursor arriba de End Sub
Botón derecho, pegar
Clic en “Grabar”
Salir del editor e ir a la página en blanco de Word
Poner mouse sobre barra de herramientas
Boton derecho, personalizar
Macros
Guardar en: FormularioConMacros.doc
Project.NewMacros.formulrio1
Con la ventana “personalizar” abierta
Botón derecho, cambiar imagen del botón
Grabar la página
Eso es todo, haciendo click sobre el nuevo botón se comienza a ejecutar el macro.
El código del macro es:
‘ Programa para llenar automáticamente un formulario en word
‘ Lo que está escrito con comilla simple son solo comentarios para explicar el programas,
pueden omitirse
‘ With… EndWith sirve para no tener que repetir la misma instrucción en cada línea, en este
caso Selection
‘
With Selection
.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle ‘Coloca espacio de líneas
en “espacio simple”
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.Font.Bold = True ‘Coloca negrita
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.Font.Size = 16 ‘Coloca tamaño de letra en 16
.ParagraphFormat.Alignment = wdAlignParagraphCenter ‘Alineado al centro
.TypeText Text:=”CERTIFICADO” ‘Escribe texto
.Font.Size = 12 ‘Coloca tamaño de letra en 12
.TypeParagraph ‘Pasa a linea siguiente
.Font.Bold = False ‘Desactiva negrita
.ParagraphFormat.Alignment = wdAlignParagraphLeft ‘alineacion a la izquierda
.TypeParagraph ‘Pasa a linea siguiente
.TypeText Text:=”Certifico que el señor “ ‘Escribe texto
.Font.Bold = True ‘Activa las negritas ‘Escribe texto
.TypeText Text:=TextBox1.Text ‘Escribe el contenido de textbox1.text
.Font.Bold = False ‘Desactiva las negritas
.TypeText Text:=”, domciliado en “ ‘Escribe texto
.TypeText Text:=TextBox2.Text ‘Escribe el contenido de textbox2.text
.TypeText Text:=” teléfono “ ‘Escribe texto
.TypeText Text:=TextBox3.Text ‘Escribe el contenido de textbox3.text
.TypeText Text:=” es una persona honorable, de buenas costumbres, “ ‘Escribe
texto
.TypeText Text:=” que no consume alcohol y su comportamiento moral es
intachable.” ‘Escribe texto
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeText Text:=” Se extiende el presente certificado a petición “ ‘Escribe texto
.TypeText Text:=” del interesado con objeto de su postulación al Opus Dei” ‘Escribe
texto
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.Font.Name = “Arial” ‘Cambia el font a Arial
.Font.Size = 10 ‘Coloca tamaño en 10
.TypeText Text:=”Arica “ ‘Escribe texto
.TypeText Text:=Date$ ‘Escribe la fecha
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.TypeParagraph ‘Pasa a linea siguiente
.ParagraphFormat.Alignment = wdAlignParagraphCenter ‘Alineación al centro
.Font.Bold = True ‘Activa negritas
.TypeText Text:=” RR. PP. TOMAS BRADANOVIC S.J. “ ‘Escribe texto
.Font.Bold = False ‘Desactiva negritas
End With ‘Termina el ciclo Selection
Unload UserForm1
Códigos de ejemplos para macros de Word en
Visual Basic
http://norfipc.com/utiles/codigos-ejemplos-macros-para-word-en-visual-basic.php
Crear macros en Microsoft Word copiando y pegando el código en el editor
de VBA. Recopilación de ejemplos prácticos para copiar y pegar. Cambiar el
formato de párrafos, imprimir, insertar imágenes, comentarios y muchas
otras acciones, que en ocasiones requieren varios pasos.
Sencilla recopilación de algunos
códigos para crear macros en Word, Excel y otras aplicaciones incluidas en la
suite de Microsoft Office.
Solo es necesario copiarlos y pegarlos en el editor de VBA incluido en estos
programas, para crear los macros.
El objetivo es facilitar la creación de macros que pueden resultar muy útiles
para la ejecución de diversas tareas.
También incentivar y estimular los que les agrada crear sus propias
aplicaciones y configurar el programa que utilizan de forma personal.
¿Cómo usar los códigos para crear las macros?
En otro artículo publicado en este sitio se explica en detalle el proceso de
creación de las macros en los programas de Microsoft Office de las dos
formas posibles, usando la "Grabadora de macros" y el "Editor de Visual
Basic".
En esta página solo iremos publicando y compartiendo los códigos que
llegan a nuestras manos o creamos para nuestro uso personal, que se
pueden insertar directamente en el editor de VBA y así crear macros.
Solo es necesario copiar el código, abrir el editor usando las teclas ALT + F11
y pegar.
Posteriormente abrir la ventana "Macros" (teclas ALT + F8), seleccionar la
macro creada y ejecutarla.
Lógicamente es posible asignar a cada macro un icono y situarlo en la Barra
de acceso rápido o una combinación de teclas.
Códigos para crear macros en Word
Ejemplos de acciones elementales
Algunos de los macros pueden ser sumamente sencillos.
Experimenta con los siguientes códigos y modifícalos a tu gusto.
Cualquier cambio hecho en el editor, toma efecto inmediatamente.
Para conocer más de la estructura del código, puedes crear macros usando
la "Grabadora de macros" y posteriormente observar el código en el "Editor
de VBA".
Cambiar formato
El siguiente macro cambia el formato del texto seleccionado.
Sub for1()
' Cambiar tamaño de la fuente
Selection.Font.Size = 20
' Cambiar el tipo de fuente
Selection.Font.Name = "Britannic Bold"
' Poner texto en negrita
Selection.Font.Bold = wdToggle
' Poner texto en italic
Selection.Font.Italic = wdToggle
' Darle el color rojo
Selection.Font.Color = wdColorRed
End Sub
Para alinear el texto usa:
' Alinear texto a la izquierda:
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
' Alinear texto a la derecha:
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
' Centrar texto:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
' Texto justificado completo
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
Para seleccionar todo el texto usa:
Selection.WholeStory
Insertar texto
Para insertar cualquier texto predeterminado en el punto de inserción del
cursor del ratón usa:
Sub SustT()
Selection.TypeText Text:="este texto"
End Sub
Códigos para copiar y pegar
Para copiar cualquiera de los códigos da un clic en el cuadro de texto que
los contienen y usa las teclas CONTROL + C.
En los códigos las líneas antecedidas de una comilla (‘), en el editor se muestran de color
verde, son solo comentarios.
Imprimir todos los documentos abiertos
Macro que nos permite enviar a la impresora de una vez, todos los
documentos de Word que tengamos abiertos.
Vista previa de impresión al 100%
En las versiones recientes de Word al decidir imprimir un documento se abre
la ventana de vista previa con la barra de opciones a la izquierda, por lo que
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office
Macros vba word office

Más contenido relacionado

Destacado

Destacado (11)

Como crear una macros en word
Como crear una macros en wordComo crear una macros en word
Como crear una macros en word
 
Tema9 plantillas y formularios
Tema9   plantillas y formulariosTema9   plantillas y formularios
Tema9 plantillas y formularios
 
Como crear una macro
Como crear una macroComo crear una macro
Como crear una macro
 
Word VBA
Word VBAWord VBA
Word VBA
 
Macros en word
Macros en wordMacros en word
Macros en word
 
Macros y VBA tema 5
Macros y VBA tema 5Macros y VBA tema 5
Macros y VBA tema 5
 
Macros en MS word
Macros en MS wordMacros en MS word
Macros en MS word
 
Ug recording excelmacros
Ug recording excelmacrosUg recording excelmacros
Ug recording excelmacros
 
MS Excel Macros/ VBA Project report
MS Excel Macros/ VBA Project reportMS Excel Macros/ VBA Project report
MS Excel Macros/ VBA Project report
 
Trampas
TrampasTrampas
Trampas
 
Ejercicios + solucionario números decimales
Ejercicios + solucionario números decimalesEjercicios + solucionario números decimales
Ejercicios + solucionario números decimales
 

Similar a Macros vba word office

Similar a Macros vba word office (20)

Macros
MacrosMacros
Macros
 
Microsoft Excel
Microsoft ExcelMicrosoft Excel
Microsoft Excel
 
Macro
MacroMacro
Macro
 
Macros de excel....manual
Macros de excel....manualMacros de excel....manual
Macros de excel....manual
 
Macros, jazmin, freddy
Macros, jazmin, freddyMacros, jazmin, freddy
Macros, jazmin, freddy
 
Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)
 
Como crear una macros en word
Como crear una macros en wordComo crear una macros en word
Como crear una macros en word
 
Como crear una macros en word
Como crear una macros en wordComo crear una macros en word
Como crear una macros en word
 
Como crear un macro
Como crear un macroComo crear un macro
Como crear un macro
 
Vba para excel
Vba para excelVba para excel
Vba para excel
 
Macros
MacrosMacros
Macros
 
Macros
MacrosMacros
Macros
 
Presentacion macros sofia angie
Presentacion macros sofia angiePresentacion macros sofia angie
Presentacion macros sofia angie
 
Como grabar un macro, Paulina Muñoz y Alejandra Gutierrez
Como grabar un macro, Paulina Muñoz y Alejandra GutierrezComo grabar un macro, Paulina Muñoz y Alejandra Gutierrez
Como grabar un macro, Paulina Muñoz y Alejandra Gutierrez
 
Taller de macros
Taller de macrosTaller de macros
Taller de macros
 
Macros en office
Macros en officeMacros en office
Macros en office
 
Macros-para-microsoft-excel
Macros-para-microsoft-excelMacros-para-microsoft-excel
Macros-para-microsoft-excel
 
Macros exce vperez1
Macros exce vperez1Macros exce vperez1
Macros exce vperez1
 
Deber de tablas de diagrama mayra
Deber de tablas de diagrama mayraDeber de tablas de diagrama mayra
Deber de tablas de diagrama mayra
 
Taller de tecnologia
Taller de tecnologiaTaller de tecnologia
Taller de tecnologia
 

Más de fgu

Diagrama del mapa curricular BG ppt 39.pdf
Diagrama del mapa curricular BG ppt 39.pdfDiagrama del mapa curricular BG ppt 39.pdf
Diagrama del mapa curricular BG ppt 39.pdffgu
 
Notas sobre la Educacion_Media_Superior_ppt_11.docx
Notas sobre la Educacion_Media_Superior_ppt_11.docxNotas sobre la Educacion_Media_Superior_ppt_11.docx
Notas sobre la Educacion_Media_Superior_ppt_11.docxfgu
 
COMANDOS PHOTOSHOP MARZO 2021.docx
COMANDOS PHOTOSHOP  MARZO 2021.docxCOMANDOS PHOTOSHOP  MARZO 2021.docx
COMANDOS PHOTOSHOP MARZO 2021.docxfgu
 
Ejercicios_HTML5.pdf
Ejercicios_HTML5.pdfEjercicios_HTML5.pdf
Ejercicios_HTML5.pdffgu
 
Visores HTML.docx
Visores HTML.docxVisores HTML.docx
Visores HTML.docxfgu
 
Formas aplicar CSS a un HTML.docx
Formas aplicar CSS a un HTML.docxFormas aplicar CSS a un HTML.docx
Formas aplicar CSS a un HTML.docxfgu
 
Ejercicios_HTML5.pdf
Ejercicios_HTML5.pdfEjercicios_HTML5.pdf
Ejercicios_HTML5.pdffgu
 
Crea tus gif animados con GIMP.docx
Crea tus gif animados con GIMP.docxCrea tus gif animados con GIMP.docx
Crea tus gif animados con GIMP.docxfgu
 
sites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdf
sites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdfsites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdf
sites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdffgu
 
ReglasCSS.docx
ReglasCSS.docxReglasCSS.docx
ReglasCSS.docxfgu
 
136398 viscosidad solver
136398 viscosidad solver136398 viscosidad solver
136398 viscosidad solverfgu
 
scilab-manual
scilab-manualscilab-manual
scilab-manualfgu
 
1 ejerc excel porcentajes
1 ejerc   excel porcentajes1 ejerc   excel porcentajes
1 ejerc excel porcentajesfgu
 
Procedimiento para crear un aula virtual tarea1
Procedimiento para crear un aula virtual tarea1Procedimiento para crear un aula virtual tarea1
Procedimiento para crear un aula virtual tarea1fgu
 
Pasos para la investigacion
Pasos para la investigacionPasos para la investigacion
Pasos para la investigacionfgu
 
Capecidevi proyecto 2018 2
Capecidevi proyecto 2018 2Capecidevi proyecto 2018 2
Capecidevi proyecto 2018 2fgu
 
Pasos para la investigacion
Pasos para la investigacionPasos para la investigacion
Pasos para la investigacionfgu
 
Triptico cad 2 d
Triptico cad 2 dTriptico cad 2 d
Triptico cad 2 dfgu
 
Triptico excel avanzado
Triptico excel avanzadoTriptico excel avanzado
Triptico excel avanzadofgu
 
Disfunciones en cada fase del ciclo sexual
Disfunciones en cada fase del ciclo sexualDisfunciones en cada fase del ciclo sexual
Disfunciones en cada fase del ciclo sexualfgu
 

Más de fgu (20)

Diagrama del mapa curricular BG ppt 39.pdf
Diagrama del mapa curricular BG ppt 39.pdfDiagrama del mapa curricular BG ppt 39.pdf
Diagrama del mapa curricular BG ppt 39.pdf
 
Notas sobre la Educacion_Media_Superior_ppt_11.docx
Notas sobre la Educacion_Media_Superior_ppt_11.docxNotas sobre la Educacion_Media_Superior_ppt_11.docx
Notas sobre la Educacion_Media_Superior_ppt_11.docx
 
COMANDOS PHOTOSHOP MARZO 2021.docx
COMANDOS PHOTOSHOP  MARZO 2021.docxCOMANDOS PHOTOSHOP  MARZO 2021.docx
COMANDOS PHOTOSHOP MARZO 2021.docx
 
Ejercicios_HTML5.pdf
Ejercicios_HTML5.pdfEjercicios_HTML5.pdf
Ejercicios_HTML5.pdf
 
Visores HTML.docx
Visores HTML.docxVisores HTML.docx
Visores HTML.docx
 
Formas aplicar CSS a un HTML.docx
Formas aplicar CSS a un HTML.docxFormas aplicar CSS a un HTML.docx
Formas aplicar CSS a un HTML.docx
 
Ejercicios_HTML5.pdf
Ejercicios_HTML5.pdfEjercicios_HTML5.pdf
Ejercicios_HTML5.pdf
 
Crea tus gif animados con GIMP.docx
Crea tus gif animados con GIMP.docxCrea tus gif animados con GIMP.docx
Crea tus gif animados con GIMP.docx
 
sites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdf
sites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdfsites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdf
sites_google_com_site_karlosnun_curso_html_tablas_html_pli_1.pdf
 
ReglasCSS.docx
ReglasCSS.docxReglasCSS.docx
ReglasCSS.docx
 
136398 viscosidad solver
136398 viscosidad solver136398 viscosidad solver
136398 viscosidad solver
 
scilab-manual
scilab-manualscilab-manual
scilab-manual
 
1 ejerc excel porcentajes
1 ejerc   excel porcentajes1 ejerc   excel porcentajes
1 ejerc excel porcentajes
 
Procedimiento para crear un aula virtual tarea1
Procedimiento para crear un aula virtual tarea1Procedimiento para crear un aula virtual tarea1
Procedimiento para crear un aula virtual tarea1
 
Pasos para la investigacion
Pasos para la investigacionPasos para la investigacion
Pasos para la investigacion
 
Capecidevi proyecto 2018 2
Capecidevi proyecto 2018 2Capecidevi proyecto 2018 2
Capecidevi proyecto 2018 2
 
Pasos para la investigacion
Pasos para la investigacionPasos para la investigacion
Pasos para la investigacion
 
Triptico cad 2 d
Triptico cad 2 dTriptico cad 2 d
Triptico cad 2 d
 
Triptico excel avanzado
Triptico excel avanzadoTriptico excel avanzado
Triptico excel avanzado
 
Disfunciones en cada fase del ciclo sexual
Disfunciones en cada fase del ciclo sexualDisfunciones en cada fase del ciclo sexual
Disfunciones en cada fase del ciclo sexual
 

Último

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 

Último (7)

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 

Macros vba word office

  • 1. Macros VBA Word office http://norfipc.com/utiles/codigos-ejemplos-macros-para-word-en-visual-basic.php Códigos de ejemplos para macros de Word en Visual Basic Crear macros en Microsoft Word copiando y pegando el código en el editor de VBA. Recopilación de ejemplos prácticos para copiar y pegar. Cambiar el formato de párrafos, imprimir, insertar imágenes, comentarios y muchas otras acciones, que en ocasiones requieren varios pasos. Sencilla recopilación de algunos códigos para crear macros en Word, Excel y otras aplicaciones incluidas en la suite de Microsoft Office. Solo es necesario copiarlos y pegarlos en el editor de VBA incluido en estos programas, para crear los macros. El objetivo es facilitar la creación de macros que pueden resultar muy útiles para la ejecución de diversas tareas. También incentivar y estimular los que les agrada crear sus propias aplicaciones y configurar el programa que utilizan de forma personal. ¿Cómo usar los códigos para crear las macros?
  • 2. En otro artículo publicado en este sitio se explica en detalle el proceso de creación de las macros en los programas de Microsoft Office de las dos formas posibles, usando la "Grabadora de macros" y el "Editor de Visual Basic". En esta página solo iremos publicando y compartiendo los códigos que llegan a nuestras manos o creamos para nuestro uso personal, que se pueden insertar directamente en el editor de VBA y así crear macros. Solo es necesario copiar el código, abrir el editor usando las teclas ALT + F11 y pegar. Posteriormente abrir la ventana "Macros" (teclas ALT + F8), seleccionar la macro creada y ejecutarla. Lógicamente es posible asignar a cada macro un icono y situarlo en la Barra de acceso rápido o una combinación de teclas. Códigos para crear macros en Word Ejemplos de acciones elementales
  • 3. Algunos de los macros pueden ser sumamente sencillos. Experimenta con los siguientes códigos y modifícalos a tu gusto. Cualquier cambio hecho en el editor, toma efecto inmediatamente. Para conocer más de la estructura del código, puedes crear macros usando la "Grabadora de macros" y posteriormente observar el código en el "Editor de VBA". Cambiar formato El siguiente macro cambia el formato del texto seleccionado. Sub for1() ' Cambiar tamaño de la fuente Selection.Font.Size = 20 ' Cambiar el tipo de fuente Selection.Font.Name = "Britannic Bold" ' Poner texto en negrita Selection.Font.Bold = wdToggle ' Poner texto en italic Selection.Font.Italic = wdToggle ' Darle el color rojo Selection.Font.Color = wdColorRed End Sub Para alinear el texto usa: ' Alinear texto a la izquierda: Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft ' Alinear texto a la derecha: Selection.ParagraphFormat.Alignment = wdAlignParagraphRight ' Centrar texto: Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter ' Texto justificado completo Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify Para seleccionar todo el texto usa: Selection.WholeStory
  • 4. Insertar texto Para insertar cualquier texto predeterminado en el punto de inserción del cursor del ratón usa: Sub SustT() Selection.TypeText Text:="este texto" End Sub Códigos para copiar y pegar Para copiar cualquiera de los códigos da un clic en el cuadro de texto que los contienen y usa las teclas CONTROL + C. En los códigos las líneas antecedidas de una comilla (‘), en el editor se muestran de color verde, son solo comentarios. Imprimir todos los documentos abiertos Macro que nos permite enviar a la impresora de una vez, todos los documentos de Word que tengamos abiertos. Vista previa de impresión al 100% En las versiones recientes de Word al decidir imprimir un documento se abre la ventana de vista previa con la barra de opciones a la izquierda, por lo que la vista previa del resultado final de la impresión se muestra reducida. Usando el siguiente macro la vista previa se mostrará al 100%, pasando las opciones de impresión a la parte superior como en versiones anteriores. Imprimir todos los documentos que están en una carpeta
  • 5. Macro para imprimir todos los documentos que se encuentren en el interior de una carpeta especifica. Los que imprimen regularmente solo necesitan copiar a dicha carpeta, creada para ese fin los documentos. Se debe especificar el código la ruta absoluta a dicha carpeta. Pegar texto sin formato Al copiar y pegar texto desde una página web a un documento de Word, se mantendrá el formato de origen, lo que puede ser molesto. Es necesario antes de pegar escoger: "Pegado especial > Texto sin formato". La siguiente macro permite hacer lo anterior con una sola instrucción o botón. Insertar imágenes desde una cámara o escáner En las versiones recientes de Word no se incluye la opción: "Insertar –> Imagen –> Desde escáner o cámara". Es necesario abrir previamente la Galería Multimedia, agregar la imagen y solo después en Word usar: "Insertar –> Imágenes prediseñadas". La siguiente macro permite insertar directamente cualquier imagen directamente desde una cámara o un escáner conectado, al igual que en Office 2003. Encerrar texto entre comillas Inserta comillas al comienzo y final del texto seleccionado. De forma similar se puede usar la macro para encerrar texto entre comillas
  • 6. simples, paréntesis, llaves o corchetes, con solo modificar el código. Encerrar texto entre paréntesis Inserta paréntesis al comienzo y final del texto seleccionado. Cambiar el formato al texto entre paréntesis Poner en italic y dar color rojo al texto que se encuentre encerrado entre paréntesis. Listar todas las fuentes instaladas Interesante macro que permite crear en un nuevo documento un listado de todas las fuentes instaladas en el sistema, con una vista previa de cada una. Lista útil para tener a mano o imprimir. Insertar un comentario Permite insertar un comentario predeterminado en el punto de inserción o sea donde se situe el cursor del ratón en un documento. Sustituye en el código "COMENTARIO" por lo que debe aparecer. Insertar un símbolo determinado en un documento Usa la macro siguiente para insertar cualquier símbolo en el punto de inserción.
  • 7. En este caso se inserta un corazón, pero puede hacerse con cualquier otro símbolo especificando en el código su número decimal y la fuente de ser necesario. Es posible insertar caracteres Unicode. Usa la herramienta Símbolos de Word para identificarlos. Ventana de alerta con la fecha de hoy Insertar fecha en el documento Ejecutar los macros de forma automática Podemos crear macros que se ejecuten automáticamente, son llamadas AutoMacros. Para eso es necesario crearlas y darles un nombre específico. Son las siguientes: AutoExec. Se ejecuta al abrir Word. AutoExit. Se ejecuta al cerrar Word. AutoOpen. Se ejecuta cuando se abre un documento desde la plantilla donde tenemos la macro. AutoClose. Se ejecuta cuando se cierra un documento desde la plantilla donde tenemos la macro. AutoNew. Se ejecuta cuando se crea un nuevo documento desde la plantilla donde esta la macro.
  • 8. Hazte fan de nuestra página en Facebook, para recibir información técnica actualizada y trucos para el uso de la computadora, el celular e internet Recibe en Twitter a diario, sugerencias sobre contenido útil e interesante, solo síguenos. ¡Damos follow-back a los que nos siguen! Síguenos en Google+ Páginas relacionadas Como crear y grabar macros en Word y Excel, ejemplos prácticos Trucos para Microsoft Word, uso, tips, configuración, ayuda y consejos Trucos para Microsoft Word, utilidades, curiosidades y secretos Cómo recuperar documentos perdidos que no se guardaron en Word Como abrir, reparar y recuperar archivos y documentos dañados de Word Como usar el diccionario de Word en otro equipo o instalación
  • 9. ¿Necesitas buscar algo en nuestro sitio? ¡Usa a Google!  Articulos o Inicio o Navegar en internet o De todo para Facebook o Como lo hago. Artículos varios o Celulares o Modificar Windows o Descargas gratis o Herramientas para virus o Comandos y batch para Windows o Modificar el Registro o Herramientas para la red o Diseño web fácil o Informaciones de Windows o Infografías o Redes sociales o Recuperar o Páginas y aplicaciones HTA  Anterior | Subir | Siguiente NorfiPC Copyright (C) 201 Ejemplos de macro VBA para insertar texto en un documento en Word 2000
  • 10. http://support.microsoft.com/kb/212682/es Ejemplos de macro VBA para insertar texto en un documento en Word 2000 Imprimir Correo electrónico Seleccione idioma Id. de artículo: 212682 -Ver los productos a los que se aplica este artículo Ver renuncia de traducción automática Traducción automática en páginas deMicrosoft Para obtener una versión de MicrosoftWord 98 Macintosh Edition de este artículo,vea 183866. Para obtener una versión de MicrosoftWord 97 de este artículo,vea 161407. Expandir todo | Contraer todo En esta página Resumen Este artículo proporciona variosde Visual Basic paraAplicaciones deejemplos de macros que utilizan la propiedad Selectiony el ob Volver arriba | Enviar comentarios Más información Microsoftproporciona ejemplos deprogramación únicamente con fines ilustrativos,sin ningunagarantía expresa o implícita.Esto de comerciabilidad o idoneidad para un fin determinado. Este artículo asumeque está familiarizado con el lenguajede programac utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoftpueden explicarlela funcionalidad de modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos quecumplan sus requisitosespecíficos. Mediante el objeto Selection y el método TypeText Inserta el texto especificado. Si la propiedad ReplaceSelection es True, la selección sesustituirá por el texto especificado. Si la pro texto especificado delantede la selección. Para obtener más información acerca dela propiedad ReplaceSelection,en el Editor de Visual Basic,haga clicen Ayuda de Microso
  • 11. propiedad ReplaceSelection en el Ayudante de Officeo el Asistente para Ayuda y, a continuación,haga clic en Buscar para ver el t Sub TypeTextMethod() Dim MyText As String MyText = "<Replace this with your text>" Selection.TypeText (MyText) End Sub Utilizando el objeto de la selección y el método TypeText En el siguiente ejemplo se reemplaza todo el contenido de un documento con la palabra"Reemplazó" independientemente de la p Sub RangeProperty() ' Range Example: ActiveDocument.Range.Text = "Replaced" End Sub Uso del objeto Range Ejemplo del método InsertAfter : Inserta el texto especificado al final deun intervalo o una selección. Sub InsertAfterMethod() Dim MyText As String Dim MyRange As Object Set MyRange = ActiveDocument.Range MyText = "<Replace this with your text>" ' Selection Example: Selection.InsertAfter (MyText) ' Range Example: ' (Inserts text at the current position of the insertion point.) MyRange.Collapse MyRange.InsertAfter (MyText) End Sub Ejemplo del método InsertBefore : Inserta el texto especificado al principio deun intervalo o una selección. Después de aplicar estemétodo, el intervalo o la selecció Sub InsertBeforeMethod() Dim MyText As String Dim MyRange As Object Set MyRange = ActiveDocument.Range MyText = "<Replace this with your text>" ' Selection Example: Selection.InsertBefore (MyText) ' Range Example: Inserts text at the beginning ' of the active document. MyRange.InsertBefore (MyText)
  • 12. End Sub Con objeto de intervalo o la seleccióny el método InsertAfter o InsertBefore Inserta un comentario en la posición actual del punto de inserción. Sub CommentsCollectionObject() Dim MyText As String Dim MyRange As Object Set MyRange = ActiveDocument.Range MyText = "<Replace this with your text>" ' Selection Example: Selection.Comments.Add Range:=Selection.Range, Text:=MyText ' Range Example: MyRange.Comments.Add Range:=Selection.Range, Text:=MyText End Sub Insertar un comentario en un documento utilizando el objeto Range o Selection Inserta un campo en la posición actual del punto de inserción. Sub FieldsCollectionObject() Dim MyText As String Dim MyRange As Object Set MyRange = Selection.Range MyText = "<Replace this with your text>" ' Selection Example: Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldQuote, Text:=MyText ' Range Example: Range.Fields.Add Range:=Selection.Range, _ Type:=wdFieldQuote, Text:=MyText End Sub En este ejemplo, se inserta un campo de fórmula. El resultado seformatea con un signo de dólar. Sub InsertFormulaMethod() Selection.InsertFormula Formula:="=100,000.0-45,000.0", _ NumberFormat:="$#,##0.0" End Sub Insertar un campo en un documento utilizando el objeto Range o Selection Esta propiedad devuelve un objeto Range con el formato de carácter y el texto del intervalo o selección. El formato de párrafo sei párrafo en el intervalo o la selección. Cuando seestablece esta propiedad,el texto en el intervalo se sustituyepor el texto con form utiliceel método Collapse antes de utilizaresta propiedad. Sub FormattedTextProperty() ' This example copies the first paragraph in the document, including
  • 13. ' its formatting, and inserts the formatted text at the insertion ' point. Selection.Collapse Direction:=wdCollapseStart Selection.FormattedText = ActiveDocument.Paragraphs(1).Range End Sub Reproducir el texto, incluido el formato de un intervalo de texto Nota: la propiedad HeaderFooter requiere que la selección seencuentra dentro de un encabezado o pie de página,o se producirá Sub HeaderFooterProperty() Dim MyText As String MyText = "<Replace this with your text>" ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Selection.HeaderFooter.Range.Text = "MyText" ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub En el ejemplo siguiente se cambia el texto de encabezado y pie de página principal dela primera sección del documento activo. Sub HeaderFooterObject() Dim MyText As String MyHeaderText = "<Replace this with your text>" MyFooterText = "<Replace this with your text>" With ActiveDocument.Sections(1) .Headers(wdHeaderFooterPrimary).Range.Text = MyHeaderText .Footers(wdHeaderFooterPrimary).Range.Text = MyFooterText End With End Sub Colocar texto en un encabezado o pie de página En este ejemplo, se inserta un campo Time para la fecha actual. Sub InsertDateTimeMethod() Dim MyRange As Object Set MyRange = Selection.Range ' Selection Example: Selection.InsertDateTime DateTimeFormat:="MMMM dd, yyyy", _ InsertAsField:=True ' Range Example: MyRange.InsertDateTime DateTimeFormat:="MMM dd, yyyy", _ InsertAsField:=True End Sub Con el objeto Range o Selection para insertar una fecha utilizando el campo de hora En este ejemplo, se inserta un nuevo párrafo a continuación dela posición actual del punto de inserción. Sub InsertParagraphMethod() Dim MyRange As Object
  • 14. Set MyRange = ActiveDocument.Range ' Selection Example: Selection.InsertParagraph ' Range Example: MyRange.Collapse Direction:=wdCollapseStart MyRange.InsertParagraph End Sub Uso del objeto Range o Selection para insertar un nuevo párrafo En este ejemplo se inserta una flecha de dos puntas en el punto de inserción. Sub InsertSymbolMethod() Dim MyRange As Object Set MyRange = ActiveDocument.Range ' Selection Example: Selection.InsertSymbol CharacterNumber:=171, _ Font:="Symbol", Unicode:=False ' Range Example: MyRange.Collapse Direction:=wdCollapseStart MyRange.InsertSymbol CharacterNumber:=171, _ Font:="Symbol", Unicode:=False End Sub Utilizar el objeto Range o Selection para insertar un símbolo Este ejemplo inserta texto colocado en el Portapapeles en la posición actual del punto de inserción. Sub PasteMethod() Dim MyRange As Object Set MyRange = Selection.Range ' Selection Example: Selection.Paste ' Range Example: MyRange.Collapse Direction:=wdCollapseStart MyRange.Paste End Sub Para obtener más información acerca decómo utilizar el objeto Range, en el Editor de Visual Basic,haga clic en Ayuda de Microso Range en el Ayudante de Officeo el Asistente para Ayuda y, a continuación,haga clic en Buscar para ver el tema. Para obtener más información acerca decómo utilizar el objeto Selection, en el Editor de Visual Basic,haga clic en Ayuda de Micro objeto Selection en el Ayudante de Office o el Asistente para Ayuda y, a continuación,haga clic en Buscar para ver el tema. Para obtener más información acerca decómo utilizar el código de ejemplo de este artículo,haga clic en el número de artícul o sig 212536OFF2000:Cómo ejecutar código de ejemplo de artículos de Knowledge Base Volver arriba | Enviar comentarios
  • 15. Referencias Para obtener más información acerca decómo obtener ayuda con Visual Basic paraAplicaciones,consulte el artículo siguienteen 226118 OFF2000:Recursos de programación para Visual Basic paraAplicaciones Volver arriba | Enviar comentarios 属性 Id. de artículo:212682 - Última revisión:miércoles,11 de octubre de 2006 - Versión: 3.2 La información de este artículo se refiere a:  Microsoft Word 2000 Standard Edition Palabras clave: kbmtkbdtacode kbhowtokbmacroexamplekbprogrammingKB212682 KbMtes Traducción automática IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lu traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos l os artículos de nuestra artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un e xtranjero podría cometer cualquier imprecisión, error o daño ocasionado por una mala traducción delcontenido o como consecuencia de su utilización po r nuestros clientes. Micr frecuentemente. Haga clic aquí para ver el artículo original(en inglés): 212682 VBA – WORD http://csdk.webs.com/files/VBA-Word.pdf
  • 16. 101 Ejemplos de Código para Office 2010 con VBA http://www.apuntesdeoffice.com/2012/08/101-ejemplos-de-codigo-para-office-2010.html Hoy te traemos una recopilación de varios ejemplos de programación para Microsoft Office 2010 con Visual Basic para Aplicaciones (VBA).Estos ejemplos de código pueden ayudarnos a crear nuestras propias aplicaciones con funciones específicas o servir de punto de partida para crear soluciones más complejas.Se incluyen ejemplos en Word, Excel,PowerPoint, OneNote, Outlook, Visio y Office en general. Cada ejemplo de código consta de 5 a 50 líneas de código aproximadamente que muestran una característica o conjunto de características diferentes en VBA. Cada ejemplo incluyecomentarios que lo describen, código de configuración para poder usar el código con los resultados esperados o los comentarios explicarán cómo configurar el entorno para poder usarel código de ejemplo. Si deseas descargarlos todos juntos, puedes hacer clic en el siguiente enlace: Office 2010 101 Code Samples.zip Descargue todos los ejemplos en un único archivo ZIP o haga clic en cada título individual a continuación para descargarel código VBA para el fragmento concreto. Word 2010  Word 2010:Agregareventos de nivel de aplicación con eventos de aplicación Word.New  Word 2010:Agregarefectos de iluminación y reflejo al texto  Word 2010:Agregarformas de imagen y aplicar formato al recortecon Word.PictureFormat.Crop  Word 2010:Aplicarun conjunto de estilos rápidos con Word.QuickStyleSets  Word 2010:Aplicartemas y estilos con Word.DocumentApplyThemeQuickStyle  Word 2010:Protegerdocumentos de Word 2010 con control de versiones en los servidores de SharePoint  Word 2010:Borrar el formato con Word.SelectionClearFormatting  Word 2010:Compararlas características de dos documentos con Word.DemoCompareDocuments  Word 2010:Crear un conjunto de estilos rápidos con Word.SaveAsQuickStyleSet  Word 2010:Exportare importar fragmentos de texto con Word.RangeImportExportFragment  Word 2010:Omitir la puntuación, la coincidencia de prefijos y sufijos, y borrar el resaltado
  • 17.  Word 2010:Mostraruna lista de información de contenido de cuadro combinado con Word.ContentControlLists  Word 2010:Hacer y guardar modificaciones simultáneamentecon Word.Coauthoring  Word 2010:Manipular los controles de casilla con Word.CheckBoxContentControl  Word 2010:Girar y retorcer texto con Word.WorkWithTextFrame  Word 2010:Trabajarcon la división automática de palabras con Word.ConvertAutoHyphens  Word 2010:Trabajarcon registros de deshaceranidados con Word.NestedCustomUndoRecords  Word 2010:Trabajarcon las propiedades del objeto Range con Word.CharParagraphStyle  Word 2010:Trabajarcon la pila de deshacer con Word.CustomUndoRecord  Word 2010:Trabajarcon temas, control de formato, control de revisiones y control de movimientos Excel 2010 (en inglés)  Excel 2010:Agregar conjuntos de iconos para rangos con Excel.AddIconSetCondition  Excel 2010:Aplicar formato condicional con el método Excel.DataBar  Excel 2010:Cambiar los colores para indicarlos valores porencima y pordebajo del promedio en rangos  Excel 2010:Comunicarse con PageSetup mediante el método Excel.PrintCommunication  Excel 2010:Crear y manipularvistas personalizadas con el método Excel.CustomView  Excel 2010:Crear eventos de los gráficos medianteprogramación  Excel 2010:Determinar los complementos abiertos mediante Excel.TestAddIn.IsOpen  Excel 2010:Mostrar el diez por ciento superior en rangos mediante programación  Excel 2010:Mostrar números únicos en rangos con Excel.AddUnique  Excel 2010:Habilitar la eliminación de filas duplicadas con Excel.RemoveDuplicates  Excel 2010:Exportar datos a PDF o XPS con el método Excel.ExportAsFixedFormat  Excel 2010:Aplicar formato a los rangos de datos con el método Excel.DisplayFormat  Excel 2010:Aplicar formato a colores en rangos con Excel.AddColorScale  Excel 2010:Manipularlas propiedades de la interfaz de usuario con Excel.ApplicationProperties  Excel 2010:Modificar las propiedades de presentación de las tablas con Excel.ListObjectDisplay  Excel 2010:Quitar varias propiedades con Excel.RemoveDocumentInformation  Excel 2010:Recuperarinformación acerca de los puntos de gráficos con Excel.PointClass  Excel 2010:Mostrar las propiedades de la serie de gráficos con Excel.SeriesProperties  Excel 2010:Mostrar las propiedades de los marcos superados con Excel.TextFrameProperties  Excel 2010:Mostrar las propiedades de ListObject con Excel.ListObjectTableStyles  Excel 2010:Mostrar las propiedades del objeto Window con Excel.WindowProperties  Excel 2010:Ordenar y filtrar mediante programación con Excel.ListObjectSortFilter  Excel 2010:Ordenar los datos mediante programación con Excel.WorksheetSort
  • 18.  Excel 2010:Usar las propiedades de gruposde minigráficos con Excel.SparkLines  Excel 2010:Trabajar con las propiedades DataBodyRange y Total con Excel.ListColumn  Excel 2010:Trabajar con las características de relleno degradado con el método Excel.Gradient  Excel 2010:Trabajar con las propiedades Header y Footercon Excel.PagesAndPage  Excel 2010:Trabajar con hipervínculos medianteprogramación  Excel 2010:Trabajar con varias funciones de fecha con Excel.WorksheetFunctionDates  Excel 2010:Trabajar con varias propiedades con el objeto Excel.PageSetup PowerPoint 2010  PowerPoint 2010:Agregar formas y aplicarles formato con PPT.ColorFormat.Brightness  PowerPoint 2010:Agregar series de eventos de nivel de aplicación con PPT.NewEvents  PowerPoint 2010:Aplicar temas y fondos con PPT.ApplyTheme.BackgroundStyle  PowerPoint 2010:Cambiar las ubicaciones de los gráficos con PPT.InteractWithChartLocation  PowerPoint 2010:Controlar el comportamiento de clic en animaciones con PPT.SlideShowClicks  PowerPoint 2010:Convertirtexto en SmartArt con PPT.ConvertTextToSmartArt  PowerPoint 2010:Copiar una animación con PPT.PickupAndApplyAnimation  PowerPoint 2010:Crear vídeos medianteprogramación  PowerPoint 2010:Mostrar las propiedades de los controles multimedia  PowerPoint 2010:Exportar diapositivas como archivos PPTX con PPT.PublishSlides  PowerPoint 2010:Insertar,mover y obtener recuentos de sección con PPT.WorkWithSections  PowerPoint 2010:Interactuar con los estilos de tabla con PPT.Table.ApplyStyle  PowerPoint 2010:Vincular vídeos y archivos de audio incrustados con PPT.AddMedia  PowerPoint 2010:Mostrar una lista de los nombres de SmartArtcon PPT.WorkWithSmartArt  PowerPoint 2010:Combinar dos lotes en uno con PPT.MergeWithBaseline  PowerPoint 2010:Modificar aspectos de los vídeos con PPT.MediaFormatProperties  PowerPoint 2010:Volver a muestrear y restablecer la resolución con PPT.ResampleMedia  PowerPoint 2010:Establecer el relleno de fondo en las tablas con PPT.TableBackground  PowerPoint 2010:Establecer las bandas y el ajuste de escala de las tablas con PPT.TableProperties  PowerPoint 2010:Usar datos XML personalizados con PPT.CustomerDataDemo  PowerPoint 2010:Ver las propiedades de la clase de ShadowFormat con PPT.Shadow  PowerPoint 2010:Trabajar con la configuración de textura FillFormat con PPT.ShapeTexture  PowerPoint 2010:Trabajar con los métodos de la clase Player con PPT.WorkWithMediaPlayer  PowerPoint 2010:Trabajar con las propiedadesde iluminado y reflejo de formas
  • 19. Visio 2010  Visio 2010:Agregar contenedores y conectarformas en documentos de Visio 2010  Visio 2010:Agregar contenedores en documentos de Visio con Visio.ContainerProperties  Visio 2010:Enlazar dos formas con Visio.Page.DropCallout  Visio 2010:Manipular formas conectadas con Visio.Page.DropConnected  Visio 2010:Manipular la configuración de resolución de exportación de rasterización  Visio 2010:Manipular las propiedades de forma con Visio.DropContainer  Visio 2010:Leer y escribir la configuración de resolución de exportación de rasterización OneNote 2010  OneNote 2010:Crear páginas mediante programación con OneNote.CreateOneNotePage  OneNote 2010:Manipularel acople con OneNote.fromVBA.DockWindow  OneNote 2010:Ir a los objetosde OneNote 2010 con OneNote.NavigateTo  OneNote 2010:Abrir, cerrar y mostrar blocs de notas de OneNote 2010 en una ventana nueva  OneNote 2010:Generarcontenido de página de OneNote 2010 a partirde orígenes VBA  OneNote 2010:Incluir contenido de página de OneNote 2010 en archivos PDF  OneNote 2010:Realizarbúsquedas de palabras clave en OneNote y obtener resultados en formato XML  OneNote 2010:Recuperardatos de atributosacerca de las secciones de blocs de notas de OneNote 2010  OneNote 2010:Recuperardatos acerca de los blocs de notas con OneNote.fromVBA.ListNotebooks  OneNote 2010:Recuperarinformación acerca de las ventanas abiertas de OneNote 2010  OneNote 2010:Recuperarlos metadatos de las páginas de secciones de blocs de notas de OneNote 2010  OneNote 2010:Devolver ubicaciones de datos de la carpetade copiade seguridad con GetSpecialLocation  OneNote 2010:Trabajar con propiedades y cuadros de diálogo integrados con el cuadro de diálogo QuickFiling Outlook 2010  Outlook 2010:Obtener acceso a listas de objetosde SharePoint con Outlook.PickerDialog  Outlook 2010:Crear mensajesSMS y MMS con Outlook.MobileItem  Outlook 2010:Manipular los elementos de las conversaciones de correo con Outlook.Conversations  Outlook 2010:Ver propiedades de Exchange Servercon Outlook.ExchangeAccounts Office 2010 en General
  • 20.  Office 2010:Cambiar los diseños de gráfico con Office.Chart.ModifyChartLayout  Office 2010:Crear gráficos de barras con Office.Chart.CreateSimpleChart  Office 2010:Modificar el texto de los ejes de un gráfico con Office.Chart.WorkWithAxisText  Office 2010:Modificar las leyendas de un gráfico con Office.Chart.WorkWithLegend  Office 2010:Modificar los títulos de un gráfico con Office.Chart.WorkWithTitle  Office 2010:Modificar los gráficos con Office.Chart.ModifyChartData VbA - Ejemplos varios realacionados a Visual basic para aplicaciones http://www.recursosvisualbasic.com.ar/htm/tutoriales/vba.htm Indice  Formulario en Vba de Access Sencillo ejemplo de la Kb de Microsoft que muestra como, crear un formulario de Access para cargar o rellenar en un Listview los datos de una tabla  Obtener la unidad de la lectora en vba Macro de ejemplo de la ayuda de Microsoft que usa las apis de windows GetDriveType y GetLogicalDriveStrings  Obtener rango Obtener el rango actualmente en uso  Access a Excel Ejemplo de importación de datos  Macro para importar una query Rutina que importa registrs desde access a excel  Archivo de texto a Excel Rutina que recupera los datos desde un arhivo de texto plano y los pasa a una sheet
  • 21.  PowerPoint Proyeto en vb que exporta un de recordset Ado a un archivo diapositiva de PowerPoint  Temporizador Crear un timer en vba con el método Ontime  Enviar correo Formulario para enviar mail desde word  Ejecutar un sql Macro en vba de excel para traer un conjunto de registros a una sheet  Acceder a procedimientos almacenados Dos ejemplos en vba y c++ para acceder mediante Ado a un Stored procedure mediante Ado  Objeto FileSearch de vba Buscar documentos de office y otros de una manera simple  Crear gráfico en powerPoint Artículo de Microsoft que muestra como crear una gráfica en PowerPoint , leyendo los valores desde un archivo externo, en este caso un fichero delimitado por caracteres , comas, tabs etc..  Ejemplos varios Artículo de la ayuda de Ms para vba, que muestra una serie de rutinas simples para trabajar en un documento de word con el objeto Range, Agregar párrafos y texto, Encabezados y pie de página, insertar campos y otros  Número de páginas del documento Simple ejemplo para obtener el total de páginas en Word del documento activo mediante una macro  Detener una macro por un tiempo Artículo que explica una manera poder generar pausas en su ejecución, y luego volver a reanudar el proceso cuando el usuario decida  Sumar celdas Macro para sumar las celdas solo que se encuentran visibles  Enviar mail muestra como obtener datos desde un documento de Word , luego de un libro de Excel y luego envía el correro por medio de OutLook
  • 22.  Recorrer un rango Dos ejemplos para recorrer en un bucle el rango seleccionado en la hoja  Imprimir gráfico Simple macro de la KB de Microsoft que muestra como poder imaprimir una imagen , dibujo, o trazado vectorial en una impresora específica  Ejemplos prácticos básicos varios códigos para implementar en macros: Uso de UserFoms : cargar, descargar, events de un userform etc.., Controles de vba : Labels, MultiPage, SpinButton, commandbutton, ListBox, Textbox etc..  Crear UserForm Ejemplo que crea un UserFom mediante una macro en tiempo de ejecución en microsoft Word 2000  Vba , ado y excel Artículo de la Knowledge base con varios ejemplos prácticos para trabajar en vba con Microsoft Ado en Excel  Crear nuevo contacto en vba de Outlook  Enviar por mail un rango de celdas de Excel en vba  Add-in para exportar gráficos de Excel Página con ejemplos en vba y también para descargar un complemento add-in que permite exportar gráficos de Microsoft Excel 2000 y Excel 2007 a un archivo en disco ( formatos gif, jpg, png ) .. de una forma simple  Plantillas gratuitas para descargar Página de office online con plantillas modelos para utilizar desde office o sacar ideas : formularios, facturas, informes, recibos, inventarios, bases de datos y muchas otras categorías Word - Microsoft Word Object Library http://www.recursosvisualbasic.com.ar/htm/tutoriales/word.htm Visual basic 6.0
  • 23.  mandar Imagen Insertar una imagen desde vb hacia un nuevo documento  Exportar recordset Formulario que exporta el contenido de un recordset de Ado a un documento  Pegar imagen en un marcador Ejemplo que pega el contenido de un picturebox o image en un marcador  Buscar y reemplazar palabras Función para poder abrir un documento desde visual basic, y ejecutar el método Execute del objeto Find, para buscar y reemplazar frases  Hacer un Timer en vba Método OnTime del objeto Application , para crear un Timer que ejecute una tarea cada cierto intervalo de tiempo  Exportar Word a html Función para abrir desde visual basic un documento de Microsoft Word y exportarlo a un nuevo archivo Html con el método SaveAs  Enviar un Mail desde Word Ejemplo de como enviar un correo electrónico desde vba usando la referencia a Mappi para el correo  Corrector Ortográfico Rutina para poder utilizar el Corrector de ortografía de word desde una aplicación Visual basic  Buscar datos Ejemplo para poder buscar datos desde visual basic en un documento  Exportar DataGrid Muestra de como exportar los registros de un control DataGrid a una tabla de un documento de Word  Datagrid a marcador Ejemplo similar al anterior, pero exporta los datos a un marcador previamente creado en el documento  Flexgrid a Word Función que permite exportar los datos de un control Microsoft FlexGrid  Word a un archivo de texto Leer desde visual basic un documento y guardarlo como un archivo en formato txt o texto plano
  • 24.  Word a RTF Ejemplo para exportar un DOC a formato RTF desde vb  Imprimir Usar el método PrintOut de vba para imprimir un documeto  Control Ole Usar el control Ole para poder cargar y visualizar un .doc desde vb  Crear un documento Simple ejemplo que crea un nuevo documento con texto y párrafos Ejemplo macro con un formulario en Word http://joseaph.blogspot.mx/2008/11/ejemplo-macro-con-un-formulario-en-word.html En este ejemplo voy a mostrar cómo hacer un formulario que carga datos en un plantilla de Word de una forma muy simple. Voy a empezar mostrando el resultado para que sea más simple entender el código. Tenemos una plantilla de Word muy sencilla (se puede complicar todo lo que queramos) y queremos que aparezca un formulario para introducir los datos en él y que se carguen a su vez en el lugar correspondiente en la plantilla. Como el usuario final puede no tener mucha idea de informática, hemos creado un nuevo botón en la pestaña "Ver". Cuando hagamos click en "Formulario Carga Datos" aparecer´el siguiente formulario.
  • 25. Cuando hagamos click en el botón "OK" los datos se cargarán automáticamente en el documento. Hasta aquí he mostrado el resultado, ahora voy a contar cómo se hace. Por un lado tenemos el formulario (sólo hay que dibujarlo): Por otro el código (basta con hacer doble click en el botón "OK" y luego pegar el siguiente código). view plainprint? 1. Private Sub OK_Click() 2. Selection.GoToWhat:=wdGoToBookmark, Name:="NombreC"
  • 26. 3. Selection.TypeText Text:=Nombre.Text 4. 5. Selection.GoToWhat:=wdGoToBookmark, Name:="Codigo" 6. Selection.TypeText Text:=Codigo.Text 7. 8. Selection.GoToWhat:=wdGoToBookmark, Name:="Contrato" 9. Selection.TypeText Text:=Contrato.Text 10. 11. Selection.GoToWhat:=wdGoToBookmark, Name:="ERP" 12. Selection.TypeText Text:=ERP.Text 13. 14. Unload UserForm1 15. 16. End Sub 17. 18. Private Sub UserForm_Initialize() 19. 'Con esto cargamos la fecha en el label 6 20. Label6.Caption = Date 21. End Sub Finalmente, sólo me falta contar cómo agregar un botón en una pestaña. Para ello hay varias opciones pero quizá la más sencilla sea pinchar en Herramientas->Personalizar. En la ventana que aparece buscamos en la parte izquierda "Macros", posteriormente pinchamos en la macro que queramos agregar y la arrastramos a la pestaña en la que deseemos colocarla. Publicado por Joseen 15:39 Etiquetas: MacrosOffice, VBA 3 comentarios: Ramón Arista Reyes dijo... Hola Jose Antonio!!! Desde hace algun tiempo he tenido una inquietud respecto a un eje tematico, curiosamente nunca habia buscado nada al respecto en la web (es decir, solo habia hecho algunos vanos y breves intentos a nivel de ensayo y error) el eje tematico es: formularios-macro-tabla...
  • 27. Lo que me parece realemente curioso es que este eje la has posteado desde el año pasado.. solo que en el sentido inverso (je, je), y mi pregunta es: Es posible desarrollar una macro que tome diversos archivos generados por el mismo formulario y apartir de cada uno de estos convertirse en los registros de la tabla?, es decir, concentrar los datos de varios formularios (archivo) en una sola tabla? 29 de junio de 2009 23:29 ccoosbd dijo... Hola José, ¿Podrías poner un enlace al código? Sigo los pasos pero falta algo ya que no funciona. Saludos 7 de julio de 2011 09:03 Anónimo dijo... Hola ccoosbd, jose se equivoco en el codigo, debe ser: Selection.GoTo What:=wdGoToBookmark, Name:="Nombre" Selection.TypeText Text:=txtnombre.Text y para que esos datos vayan a la hoja, debes de insertar un marcador: pestaña insertar, grupo vinculos, marcador. con eso sale.(office 2010), espero que te funciones saludos. Peter Chirinos Visual Basic para Aplicaciones: Curso Práctico http://vbacrash.blogspot.mx/p/el-curso-escrito.html El curso escrito
  • 28. Esta es una reescritura del Curso Básico de VBA que publiqué hace unos 15 años atrás. Como el VBA sigue vigente pensé que sería bueno hacer una nueva versión del curso que elimine la palabrería inútil y muchos contenidos de relleno que tenía el curso anterior. Aquí vamos: Para que sirve el VBA En pocas palabras, para programar los componentes de Microsoft Office tales como Word, Excel, Access, Poower Point y Visio. En este curso los ejemplos serán solo de Word y Excel. Es un subconjunto casi completo del lenguaje de programación Visual Basic 6.0. O sea, si tienen instalado el Office o cualquiera de sus componentes, no necesitan más para programar en VBA. La advertencia de seguridad: Al abrir macros en Word97 puede negar acceso por la configuración de seguridad presdeterminada. En este caso hay que ir a Herramientas, Macros, Seguridad y se cambia a nivel medio como muestra la figura.
  • 29. Nivel medio significa que avisará antes de ejecutar un macro mostrando una pantalla de advertencia sobre la posibilidad de virus (como VBA es un lenguaje completo, se puede encapsular virus dentro de un documento de Office). Cuando ejecutamos nuestros macros simplemente ponemos "Habilitar macros" después de la advertencia. Luego en el Word -por ejemplo- escogeremos Herramientas, Macros, Editor de Visual Basic y aparecerá lo siguiente:
  • 30. Este es el entorno de trabajo donde podemos distinguir: Explorador de proyectos. El explorador de proyectos es una herramienta de exploración y gestión que muestra una lista jerárquica de cada proyecto abierto. También muestra cada una de las componentes asociadas con los proyectos, como los documentos de Word, formularios, módulos de clase y referencias. En palabras sencillas hay que dejarlo tal como está. A medida que agreguemos objetos a nuestro progranma irán apareciendo en el explorador y nos servirá para movernos de un componente a otro. Ventana de propiedades. La ventana de Propiedades muestra las propiedades para el objeto activo (Formulario de usuario o control). Ofrece una manera visual de configurar y modificar propiedades. En la ventana de propiedades , las propiedades se pueden listar alfabéticamente o por categorías. En palabras sencillas, cuando agregamos un objeto este tiene varias “propiedades” como su color, tamaño, tipo de letra, etc. En esta ventana podemos cambiar las propiedades del objeto “activo” (iluminado) en ese momento.
  • 31. Barra de herramientas. Es donde aparecen los botones para las funciones mas usadas, esta justo abajo de la Barra de menús que tiene los menús con todas las opciones del Visual BAsic Area de trabajo. Es donde colocamos nuestros objetos (Formularios o controles) y les agregamos código Como se hacen los programas en Visual Basic: Los programas en Visual Basic se hacen en dos etapas a) Se dibujan las pantallas b) Se coloca código a los objetos Primer ejemplo: convertidor de monedas Para este ejemplo primero dibujaremos las pantallas que en VBA se llaman Formularios de Usuario (User Forms), asi es que usando la barra de menús procedemos a Insertar, UserForm, nos aparece lo siguiente:
  • 32. En nuestra Area de trabajo un formulario llamado UserForm1 (nombre por defecto) y abajo una caja de herramientas con los componentes que podemos colocar dentro de ese formulario. Fijense que la barra superior de UserForm1 está de color azul (iluminada) lo que indica que es el componente activo en este momento. Ahora experimentemos con las propiedades de la UserForm1. Primero hagamos click en la propiedad “Caption” y cambiemos el valor por defecto (UserForm1) escribiendo encima de eso “Convertidor de Dolares a Pesos)”. Vean como cambia el título de nuestro formulario. Seguidamente cambiemos la propiedad “Back color” haciendo click en ella y luego un click sobre el botón con flecha que aparece a la derecha. Aparecerá una paleta de colores. Haga click sobre cualquier color y verá como cambia el fondo de nuestro formulario. Busquen otras propiedades y cambien sus valores. Si no notan ningún efecto restauren la propiedad a su valor original (con el tiempo se familiarizarán con cada una de las propiedades disponibles para cada componente
  • 33. de la caja de herramientas). Si, se pierde la caja de herramientas, la podrán recuperar fácilmente con “Ver” “Caja de Herramientas” de la barra del menú. Si no encuentran alguna propiedad (por ejemplo “Name” recuerden que la ventana de propiedades las puede mostrar en orden alfabetico o por categorías, busque en ambos lados pulsando en la ventana correspondiente en la parte superior de las propiedades. Usaremos tres clases de controles en nuestro proyecto: labels (etiquetas), textboxes (cajas de dialogo o de texto) y un commandbutton (botón de comando), todas estos controles se sacan de lacaja de herramientas de abajo del formulario y cada uno tiene sus propiedades. Los labels son los marcados con la letra “A” en la caja de herramientas, haciendo click sobre el icono y luego colocándose sobre el formulario se dibuja, arrastrando el mouse cambia el tamaño en que desea que aparezca su label. Luego en la ventana de propiedades cambia la propiedad“Caption” del primer label escribiendo “Dolares” en lugar de label1. También puede cambiar la propiedad “Name” a ldolares (por labeldolares). Repita el procedimiento creando otro label con caption “Pesos” y nombre lpesos (por labeltpesos). Luego escoja un textbox del la caja de herramientas (el icono con “ab”) y dibujelo al lado del label ldolares, borrele la propiedad “Caption” (que quede en blanco) y cambie la propiedad “Name” a tdolares. Con el mismo procedimiento cree un textbox llamado tpesos al lado del label lpesos. Luego arrastre un boton de la caja de herramientas (el rectangulo sin nombre) y dibujelo en el formulario, luego cambiele la propiedad “Caption” a “Borrar”. Si ha llegado hasta el punto que muestra la figura ya tiene la mitad del programa listo.
  • 34. Note que en éste ejemplo cambié la propiedad “Backcolor” del formulario y la propiedad “Font” de los labels a “Bold” y “10 pt”. Aquí tenemos nuestra pantalla rudimentariamente dibujada. Ahora nos falta poner el código, para ello debemos pensar “que es lo que queremos que haga el programa”. En éste caso yo deseo que“cuando escriba una cifra en el textbos de dolares aparezca su equivalencia en el textbox pesos y viceversa”. O sea que el programa debe actuar cada vez que escribamos algo en uno de los textbox y luego de presionar Enter. Para eso tenemos que poner un código a cada uno de los textbox indicando que deseamos que ocurra cada vez que escribimos algo y apretamos Enter (eso se llama un "evento"). Para poner código en el textbox de “tdolares” hacemos doble click sobre él y aparecerá la “ventana de códigos” con dos ventanillas en la parte superior; la de la izquierda dirá ldolares (el nombre del objeto) y en la derecha una
  • 35. lista deplegable con todos los “eventos” permitidos para ese objeto (change, click, mousedown, etc…). De esa lista escogemos el evento “Exit” (que significa que presionamos la tecla Enter) y escribimos en la ventana el siguiente código: Private Sub tdolares_Exit(ByVal Cancel As MSForms.ReturnBoolean) tpesos.text = Val(tdolares.text) * 500 End Sub Es decir que cuando escribimos algo en el textbox llamado tdolares y luego presionamos Enter se calculará el varol equivalente en pesos. Nótese que lo que escribimos en el textbox llamado tdolares queda almacenado en la propiedad “tdolares.text”,, le extraemos su valor con val(tdolares), multiplicamos este valor por 500 y lo asignamos como propiedad “text” al textbox llamado “tdolares”. Al principio puede parecer enredado pero una vez que nos acostumbramos a los objetos a los que les cambiamos sus propiedades esto se convierte en pan comido. Para salir de la ventana de códigos y volver al formulario simplemente hacemos click en “UserForm1″ del explorador de proyectos (ventana superior izquierda) Para el otro textbox (tpesos) también hacemos doble click, escogemos el evento “exit” y escribimos: Private Sub tpesos_Exit(ByVal Cancel As MSForms.ReturnBoolean) tdolares.text = Val(tpesos.text) /500 End Sub Si está todo correcto no sería mala idea que lo grabaran, haciendo click sobre el icono del diskette. Para probarlo, en la barra de herramientas hay tres botones similares a los de una grabadora. Para que parta el programa presionen el boton correspondiente al “Play” o bien presionen F5 (da lo mismo). Para diseñar las pantallas rápidamente podemos Copiar, Pegar, Formato, Alinear a la izquierda, Espacio Horizontal, Igualar, etc.a nuestros componentes. Segundo ejemplo: un Formulario en Word VBA
  • 36. La automatización de formularios en Word es una de las aplicaciones más útiles del VBA, mostraré paso a paso como hacer un ejemplo sencillo que puede modificarse y adaptarse a muchos otros formatos Botón derecho Nuevo Nuevo documento del Word Cambiar nombre a FormularioConMacros.doc Herramientas Opciones Seguridad Seguridad de macros (cambiar a medio) Herramientas Macro Macros Nombre de la macro: formulario1 Macros en: FormularioConMacros.doc (documento) Crear insertar UserForm (si el cuadro de herramientas no se ve) ver, Cuadro de Herramientas Crear Userform con 3 labels, 3 textboxes y 1 commandbuttom como muestra la figura siguiente
  • 37. Volver a FormularioCon Macros.doc Doble clic en CommandButton1 Debe aparecer Private Sub CommandButton1_Click() End Sub Colocar cursor arriba de End Sub Escribir el siguiente código (puede hacer un copy-paste) With Selection .ParagraphFormat.LineSpacingRule = wdLineSpaceSingle ‘Coloca espacio de líneas en “espacio simple” .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .Font.Bold = True ‘Coloca negrita .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .Font.Size = 16 ‘Coloca tamaño de letra en 16 .ParagraphFormat.Alignment =
  • 38. wdAlignParagraphCenter ‘Alineado al centro .TypeText Text:=”CERTIFICADO” ‘Escribe texto .Font.Size = 12 ‘Coloca tamaño de letra en 12 .TypeParagraph ‘Pasa a linea siguiente .Font.Bold = False ‘Desactiva negrita .ParagraphFormat.Alignment = wdAlignParagraphLeft ‘alineacion a la izquierda .TypeParagraph ‘Pasa a linea siguiente .TypeText Text:=”Certifico que el señor “ ‘Escribe texto .Font.Bold = True ‘Activa las negritas ‘Escribe texto .TypeText Text:=TextBox1.Text ‘Escribe el contenido de textbox1.text .Font.Bold = False ‘Desactiva las negritas .TypeText Text:=”, domciliado en “ ‘Escribe texto .TypeText Text:=TextBox2.Text ‘Escribe el contenido de textbox2.text .TypeText Text:=” teléfono “ ‘Escribe texto .TypeText Text:=TextBox3.Text ‘Escribe el contenido de textbox3.text .TypeText Text:=” es una persona honorable, de buenas costumbres, “ ‘Escribe texto .TypeText Text:=” que no consume alcohol y su comportamiento moral es intachable.” ‘Escribe texto .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeText Text:=” Se extiende el presente certificado a petición “ ‘Escribe texto .TypeText Text:=” del interesado con objeto de su postulación al Opus Dei” ‘Escribe texto .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .Font.Name = “Arial” ‘Cambia el font a Arial
  • 39. .Font.Size = 10 ‘Coloca tamaño en 10 .TypeText Text:=”Arica “ ‘Escribe texto .TypeText Text:=Date$ ‘Escribe la fecha .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .ParagraphFormat.Alignment = wdAlignParagraphCenter ‘Alineación al centro .Font.Bold = True ‘Activa negritas .TypeText Text:=” RR. PP. TOMAS BRADANOVIC S.J. “ ‘Escribe texto .Font.Bold = False ‘Desactiva negritas End With ‘Termina el ciclo Selection Unload UserForm1 #160; Clic en “Grabar” Salir del editor e ir a la página en blanco de Word Poner mouse sobre barra de herramientas Boton derecho, personalizar Macros Guardar en: FormularioConMacros.doc Project.NewMacros.formulrio1 Con la ventana “personalizar” abierta Botón derecho, cambiar imagen del botón Grabar la página Eso es todo, haciendo click sobre el nuevo botón se comienza a ejecutar el macro. No explicaré el programa línea por línea porque se encuentra auto documentado en los comentarios Tercer ejemplo: Prototipos en VBA- Excel
  • 40. Los he llamado prototipos solo por poner un nombre. Se trata de pequeños programas hechos en Excel, con propósito pedagógico para mostrar como se codifican algunas tareas básicas de entrada y actualización de datos. Se muestran tres ejemplos que pueden servir de base para otros programas funcionales: una agenda un pequeño programa de inventario y un pequeño programa de cuenta corriente. No se usan archivos pues se usa la misma hoja de Excel como soporte para almacenar los datos, esto muestra la versatilidad y posibilidades de uso del VBA integrado con Excel. 1.- Una Agenda Se trata de programar una agenda, programa que pida datos personales tales como nombre, dirección, teléfono, etc. y los almacene en la misma hoja excel En la hoja Excel se habilitan los macros cambando las opciones de seguridad si es necesario y se ingresa al entorno de programación con Herramientas, Macros, Editor de Visual Basic Una vez allí se escoge Insertar, Userformy usando la caja de herramientas se colocan los textbox y el command button
  • 41. En el Command Button se agrega el siguiente código Private Sub CommandButton1_Click() indice = Hoja1.Cells(1, 1) If indice = "" Then indice = 1 Hoja1.Cells(1, 1) = indice End If indice = indice + 1 Hoja1.Cells(1, 1) = indice Hoja1.Cells(indice, 1) = TextBox1.Text Hoja1.Cells(indice, 2) = TextBox2.Text Hoja1.Cells(indice, 3) = TextBox3.Text Hoja1.Cells(indice, 4) = TextBox4.Text TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = ""
  • 42. TextBox1.SetFocus End Sub Listo, eso es todo 2.- Un Inventario Este prototipo ingresa nuevos artículos que deja guardados en la hoja Excel y permite hacer ventas rebajando el saldo. Consta de dos formularios, el principal tiene la ventana para rebajar las ventas (Insertar, User form)
  • 43. La programación de los elementos de la form es la siguiente Para el combobox (se cambió en nombre a ComboNombre) Private Sub ComboNombre_Exit(ByVal Cancel As MSForms.ReturnBoolean) Rem al escoger un item del combobox hace lo siguiente Rem coloca el costo en textbox1 TextBox1.Text = Hoja1.Cells(2, 2) Rem coloca el precio de venta (lista) en textbox2 TextBox2.Text = Hoja1.Cells(2, 3) End Sub Para el Command Button 1 (Agregar artículo) Private Sub CommandButton1_Click() Rem para agregar un nuevo articulo Rem se carga userform2 Load UserForm2 Rem se muestra userforrm2 UserForm2.Show End Sub Para el Command Button 2 (Ingresar venta) Private Sub CommandButton2_Click() Rem al ingresar la venta Rem el saldo esta en hoja1.cells de la linea de combo que elegimos Rem que en la hoja exel seria la posicion combonombre.listindex + 1 Rem recordar el formato Hoja1.Cells(linea,columna) Rem luego toma el valor (cantidad) almacenado en esa celda y le resta el valor de textbox3.text Hoja1.Cells(ComboNombre.ListIndex + 1, 2) = Hoja1.Cells(ComboNombre.ListIndex + 1, 2) - TextBox3.Text Rem con eso deja la cantidad rebajada Rem luego limpia los textbox combo y pone el foco en combonombre TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = ""
  • 44. ComboNombre.Text = "" ComboNombre.SetFocus End Sub Para Textbox3 (después de ingresar la cantidad vendida) Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean) Rem calcula el total de la venta y lo coloca en textbox4.text TextBox4.Text = TextBox2.Text * TextBox3.Text End Sub Para cuando se cargue la User Form Private Sub UserForm_Activate() Rem llena los valores del combo cada vez que parte el programa userform_activate Rem para ello primero parte de la posicion 2 Rem y cambia los valores de z desde 1 a 500 Rem y con el metodo additem llena al combo de valores (nombres de articulos) If Hoja1.Cells(1, 1) <> "" Then For z = 1 To 500 ComboNombre.AddItem Hoja1.Cells(z, 1) Next z Rem deja en blanco el combo ComboNombre.Text = "" End If End Sub Luego se crea la segunda User From con Insertar, Userform
  • 45. En este caso solos se programa el Command Buttom Private Sub CommandButton1_Click() Rem posicion del indice en la celda 1,1 indice = Hoja1.Cells(1, 1) Rem si el indice es cero se cambia a uno If indice = "" Then indice = 1 Hoja1.Cells(1, 1) = indice End If Rem incrementa el indice en 1 lugar que es la fila donde debe grabar indice = indice + 1 Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1 Hoja1.Cells(1, 1) = indice Rem escribe los contenidos de los textbox en la hoja 1 Rem la fila es el valor del indice y la columna varia segun el contenido Hoja1.Cells(indice, 1) = TextBox1.Text Hoja1.Cells(indice, 2) = TextBox2.Text Hoja1.Cells(indice, 3) = TextBox3.Text Hoja1.Cells(indice, 4) = TextBox4.Text Rem limpia todos los textbox TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = ""
  • 46. Rem coloca el foco en textbox1 TextBox1.SetFocus End Sub 3.- Una Cuenta Corriente Este prototipo ingresa nuevas cuentas con sus datos, va ingresando movimientos, entrega los saldos y emite una cartola de movimientos El primer form que se ingresa es el que entrega los saldos y permite ir a ingresar cuentas y cartolas, Insertar, Userform
  • 47. La programación de los componentes de este form es: Para el ComboNombre Private Sub ComboNombre_Click() Rem al escoger un item del combobox hace lo siguiente Rem coloca el costo en textbox1 saldo = 0 CodCliente = ComboNombre.ListIndex + 1 TextBox1.Text = Hoja1.Cells(CodCliente, 2) Rem coloca el precio de venta (lista) en textbox2 TextBox2.Text = Hoja1.Cells(CodCliente, 3) TextBox3.Text = Hoja1.Cells(CodCliente, 4) ultimo = Hoja2.Cells(1, 1) For z% = 2 To ultimo If CodCliente = Hoja2.Cells(z%, 1) Then monto = Hoja2.Cells(z%, 4) If Hoja2.Cells(z%, 5) = "Debe" Then monto = -1 * monto End If saldo = saldo + monto End If Next z%
  • 48. TextBox4.Text = saldo End Sub Para el Command Button 1 (Agregar nueva cuenta) Private Sub CommandButton1_Click() Rem para agregar nueva cuenta Rem se carga userform3 Load UserForm3 Rem se muestra userforrm2 UserForm3.Show End Sub Para el Command Button 3 (para ir agregando movimientos) Private Sub CommandButton3_Click() Rem para agregar un nuevo movimiento Rem se carga userform2 Load UserForm2 Rem se muestra userforrm2 UserForm2.Show End Sub Para el Command Button 4 (para emitir cartola) Private Sub CommandButton4_Click() Rem para emitir cartola Rem se carga userform4 Load UserForm4 Rem se muestra userforrm4 UserForm4.Show End Sub
  • 49. Para Text Box 3 (coloca total venta) Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean) Rem calcula el total de la venta y lo coloca en textbox4.text TextBox4.Text = TextBox2.Text * TextBox3.Text End Sub Para cuando se activa la User Form Private Sub UserForm_Activate() Rem llena los valores del combo cada vez que parte el programa userform_activate Rem para ello primero parte de la posicion 2 Rem y cambia los valores de z desde 1 a 500 Rem y con el metodo additem llena al combo de valores (nombres de articulos) If Hoja1.Cells(1, 1) <> "" Then For z = 1 To 500 ComboNombre.AddItem Hoja1.Cells(z, 1) Next z Rem deja en blanco el combo ComboNombre.Text = "" End If End Sub Luego Insert, User form para el User Form de Insertar Movimiento
  • 50. Cuyos componentes programables son La User Form al activarse (ingresar el movimiento) Private Sub UserForm_Activate() Rem llena los valores del combo cada vez que parte el programa userform_activate Rem para ello primero parte de la posicion 2 Rem y cambia los valores de z desde 1 a 500 Rem y con el metodo additem llena al combo de valores (nombres de articulos) If Hoja1.Cells(1, 1) <> "" Then For z = 1 To 500 ComboNombre.AddItem Hoja1.Cells(z, 1) Next z Rem deja en blanco el combo ComboNombre.Text = "" End If End Sub El Comand Button1
  • 51. Private Sub CommandButton1_Click() Rem posicion del indice en la celda 1,1 indice = Hoja2.Cells(1, 1) Rem si el indice es cero se cambia a uno If indice = "" Then indice = 1 Hoja2.Cells(1, 1) = indice End If Rem incrementa el indice en 1 lugar que es la fila donde debe grabar indice = indice + 1 Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1 Hoja2.Cells(1, 1) = indice Rem escribe los contenidos de los textbox en la hoja 1 Rem la fila es el valor del indice y la columna varia segun el contenido Hoja2.Cells(indice, 1) = ComboBox2.ListIndex + 1 Hoja2.Cells(indice, 2) = TextBox1.Text Hoja2.Cells(indice, 3) = TextBox2.Text Hoja2.Cells(indice, 4) = TextBox3.Text Hoja2.Cells(indice, 5) = ComboBox1.Text Rem limpia todos los textbox TextBox2.Text = "" TextBox3.Text = "" Rem coloca el foco en textbox1 ComboBox2.SetFocus End Sub Luego el User Form 3 para agregar nuevas cuentas, Insert, User Form
  • 52. Cuyo código asl activarse es: Private Sub UserForm_Activate() ComboBox1.AddItem "Haber" ComboBox1.AddItem "Debe" ComboBox1.Text = ComboBox1.List(1) TextBox1.Text = Date ComboBox2.SetFocus If Hoja1.Cells(1, 1) <> "" Then For z = 1 To 500 ComboBox2.AddItem Hoja1.Cells(z, 1) Next z Rem deja en blanco el combo ComboBox2.Text = "" End If End Sub Para el Command Button 1 (ingresar cuenta) Private Sub CommandButton1_Click() Rem posicion del indice en la celda 1,1
  • 53. indice = Hoja1.Cells(1, 1) Rem si el indice es cero se cambia a uno If indice = "" Then indice = 1 Hoja1.Cells(1, 1) = indice End If Rem incrementa el indice en 1 lugar que es la fila donde debe grabar indice = indice + 1 Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1 Hoja1.Cells(1, 1) = indice Rem escribe los contenidos de los textbox en la hoja 1 Rem la fila es el valor del indice y la columna varia segun el contenido Hoja1.Cells(indice, 1) = TextBox1.Text Hoja1.Cells(indice, 2) = TextBox2.Text Hoja1.Cells(indice, 3) = TextBox3.Text Hoja1.Cells(indice, 4) = TextBox4.Text Rem limpia todos los textbox TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" Rem coloca el foco en textbox1 TextBox1.SetFocus End Sub Finalmente se inserta el User From 4 para emitir cartola Insert, User Form
  • 54. Solo contiene un Combo Box con el siguiente código Private Sub UserForm_Activate() If Hoja1.Cells(1, 1) <> "" Then For z = 1 To 500 ComboBox1.AddItem Hoja1.Cells(z, 1) Next z Rem deja en blanco el combo ComboBox1.Text = "" End If End Sub indice = indice + 1 Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1 Hoja1.Cells(1, 1) = indice Rem escribe los contenidos de los textbox en la hoja 1 Rem la fila es el valor del indice y la columna varia segun el contenido Hoja1.Cells(indice, 1) = TextBox1.Text Hoja1.Cells(indice, 2) = TextBox2.Text Hoja1.Cells(indice, 3) = TextBox3.Text Hoja1.Cells(indice, 4) = TextBox4.Text Rem limpia todos los textbox TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = ""
  • 55. TextBox4.Text = "" Rem coloca el foco en textbox1 TextBox1.SetFocus End Sub Y eso sería todo Como programar en VBA sin conocer el modelo de objetos El modelo de objetos de VBA (Microsoft Foundation Classes) contiene todas las funciones y herramientas que se necesitan para programar cualquier componente del Officce, el problema que es enorme y solo examinar el complicado árbol de objetos, clases y subclases tomaría montenes de tiempo. Existe un truco que permite averiguar de manera rápida que objetos hay que usar y como para distintas tareas, esto se hace usando la grabadora de macros. Abrimos un documento en blanco y nos vamos a Herramientas, Macros, Grabar Nueva Macro, Aceptar (quedará grabado son el nombre por defecto Macro1). Aparecerá la imagen de una mini "grabadora" que indica que estamos grabando el macro. Supongamos que queremos ver como se programa para acceder a los encabezados y pies de página, como estamos grabando la macro hacemos la operación que queremos automatizar de modo manual, en este caso escogemos Ver, Encabezados y pies de página, escribimos un encabezado, nos cambiamos al pie, escribimos un pie (cualquiera, solo de ejemplo) y hacemos clic en el botón que detiene la grabadora. Luego vamos a Herramientas, Macros, Macros, Editar y veremos todo el código ya hecho, listo para ser cortado y pegado en nuestro programa, en este caso sería: Sub Macro2() ‘ ‘ Macro2 Macro ‘ Macro grabada el 24-12-98 por TOMAS BRADANOVIC
  • 56. ‘ If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Or ActiveWindow.ActivePane.View.Type _ = wdMasterView Then ActiveWindow.ActivePane.View.Type = wdPageView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Selection.TypeText Text:= _ “Tomás Bradanovic, Consultoría en Proyectos de Inversión Públ” Selection.TypeText Text:=”ica” Selection.TypeParagraph Selection.HeaderFooter.Shapes.AddLine(72#, 93.6, 540#, 93.6).Select If Selection.HeaderFooter.IsHeader = True Then ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Else ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader End If Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldPage NormalTemplate.AutoTextEntries(“Página X de Y”).Insert Where:=Selection. _ Range ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub Como pueden ver la grabadora de macros escribió por nosotros todo el código que necesitamos, incluso ahora lo podemos analizar y oprimizar para nuestra aplicación en particular. Esata es una manera muy rápida y práctica de ir aprendiendo el modelo de objeto solo a medida que se va necesitando.
  • 57. na aplicación práctica: Diseño de un formulario en VBA http://www.bradanovic.cl/pcasual/vbabasico.htm Nuestra primera aplicación práctica consistirá en llenar un formulario que tiene datos fijos y otros variables. En este ejemplo programaremos un (tétrico) certificado de autopsia. Cualquiera que tenga nociones del Visual Basic "normal" lo podrá programar sin mayor dificultad, aún alguien con cero conocimiento podría hacerlo, claro que se tendrá que cabecear un poco, pues una explicación demasiado detallada resultaría aburrida para la audiencia promedio de esta página. Lo primero es abrir un nuevo documento del word y con "ver" "barras de herramientas" "Formularios" hacemos aparecer la barra de formularios que nos permitirá colocar los campos variables, la barra es más o menos así: Luego escribimos el formulario y para insertar los campos variable (indicados con sombra) usamos el primer botón de la barra de Formularios, el que tiene las letras "ab", si al hacer click en el botón "ab" aparentemente no pasa nada, es que necesitamos sombrear los campos para verlos con más facilidad, para ello usamos el penúltimo botón de sombreado. Así nos queda un documento como este:
  • 58. Una vez escrito e insertados los campos le ponemos nombres, seleccionando cada campo, click con botón derecho, Propiedades, Nombre. Así los campos quedan con nombres descriptivos como: tribunal, ciudad, fecha, medico, proceso, fallecido, etc. Luego nos vamos a "Herramientas" "Macros" "Visual Basic" como muestra la figura:
  • 59. Con lo que aparece el entorno de desarrollo del VBA, Con "Insertar" "Formulario" insertamos el UserForm1 como muestra la figura y luego desde la caja de herramientas escogemos los label, los combobox commandbuttom y los textbox, que colocamos en el formulario tal como muestra la figura siguiente:
  • 60. Ya estamos casi listos y solo nos resta programar los distintos componentes que hemos colocado en el formulario, para colocar el código simplemente hacemos doble click sobre el componente y aparecerá una ventana con el privatesub (....) end sub, entre esas dos instrucciones (que las coloca el entorno) escribimos nuestros códigos, que en este caso podrían ser algo asi: Private Sub CommandButton1_Click() rem esta es la instrucción cuando se apreta el botón "Ok" rem una vez ingresados todos los datos rem sirve para llenar los campos variables Selection.GoTo What:=wdGoToBookmark, Name:="tribunal" Selection.TypeText Text:="PRIMER" Selection.GoTo What:=wdGoToBookmark, Name:="ciudad" Selection.TypeText Text:="ARICA" Selection.GoTo What:=wdGoToBookmark, Name:="fecha" Selection.TypeText Text:=TextBox1.Text Selection.GoTo What:=wdGoToBookmark, Name:="medico" Selection.TypeText Text:=ComboBox1.Text Selection.GoTo What:=wdGoToBookmark, Name:="rol" Selection.TypeText Text:=TextBox3.Text Selection.GoTo What:=wdGoToBookmark, Name:="fallecido" Selection.TypeText Text:=TextBox2.Text Selection.GoTo What:=wdGoToBookmark, Name:="juez" Selection.TypeText Text:=ComboBox2.Text Selection.GoTo What:=wdGoToBookmark, Name:="secretario" Selection.TypeText Text:=ComboBox3.Text
  • 61. Selection.GoTo What:=wdGoToBookmark, Name:="medico2" Selection.TypeText Text:=ComboBox1.Text Unload UserForm1 End Sub Private Sub UserForm_Initialize() rem con esto le damos valores a los label y llenamos los combos UserForm1.Caption = "Autopsia" Label1.Caption = "MEDICO" 'combo1 Label2.Caption = "JUEZ" 'combo2 Label3.Caption = "SECRETARIO" 'combo3 Label4.Caption = "MOVIMIENTO" 'combo4 Label5.Caption = "FECHA" 'textbox1 Label6.Caption = "FALLECIDO" 'textbox2 Label7.Caption = "ROL" 'textbox3 Label8.Caption = "" 'textbox4 Label9.Caption = "" 'textbox5 Label10.Caption = "" '´textbox6 TextBox4.Visible = False TextBox5.Visible = False TextBox6.Visible = False TextBox1.Text = Date ComboBox4.Text = "SUM SOLICITA INF AUTOPSIA" ComboBox1.AddItem "CARLOS VILLAVICENCIO SILVA" ComboBox1.AddItem "ADRIANA BARRIENTOS ESPINOZA" ComboBox2.AddItem "JORGE QUIÑONES GARAT" ComboBox2.AddItem "HECTOR GUTIERREZ MASSARDO" ComboBox3.AddItem "HECTOR GUTIERREZ MASSARDO" ComboBox3.AddItem "JULIO MAZUELOS RAMOS" ComboBox1.Text = ComboBox1.List(0) ComboBox2.Text = ComboBox2.List(0) ComboBox3.Text = ComboBox3.List(0) End Sub Por último para colocar un botón que haga partir el macro usamos "Herramientas" "Personalizar" "Comandos" "Macros", deberá aparecer algo más o menos así:
  • 62. Con el botón izquierdo arrastramos el macro que aparece en la ventana de comandos hacia cualquier barra de herramientas (si no aparece ningún macro hay que buscar otras ubicaciones en el combo inferior "Guardar en" ). Luego para cambiar el aspecto del botón editamos sus propiedades haciendo clic derecho sobre él. Finalmente probamos que todo funcione Ok (haciendo clic sobre el botón debe partir el macro y funcionar correctamente) y grabamos todo como una plantilla, (con "Guardar Como") de modo que cada vez que la abramos se genere un documento diferente (no se sobreescribe). Bueno, este es solo un ejemplo básico pero perfectamente se pueden hacer formularios usando tablas, validando las entradas que hace el usuario y mil pequeños detalles que pueden ir agregando ustedes mismos para practicar. ¿Vieron que fácil es? La plantilla completa, con unos pocos adornos se puede bajar haciendo Clic Aquí Conectando un documento Word con una BD Access http://www.bradanovic.cl/pcasual/vbayaccess.html En el siguiente ejemplo se asume que tenemos una base de datos Access llamada DataBase.mdb y que está almacenada en la carpeta C:DataBaseFolder. se asume también que la base de datos contiene una tabla llamada Table_1 y que esa tabla contiene dos campos llamados Field_1 y Field_2. Finalmente se asume que Field_1 es un campo numérico mientras que Field_2 es un campo de texto.
  • 63. El código revisa el valor en Field_1. y si este valor no es cero se coloca el texto de Field 2 en el documento activo de Word, en la posición del cursor En una situación real podría ser necesario tener marcadores en el documento (así como una plantilla que los contenga) en lugar de insertar los ítem en la posición del cursor Para que el código funcione se debe establecer una referencia en la plantilla del Word a Microsoft DAO 3.51 Object Library and Microsoft Datasource Interfaces. Para hacer esto se ingresa a Herramientas, Macros, Editor de Visual Basic y Referencias Sub GetDataFromDataBase() 'reserva memoria para el objeto database así como para el registro activo Dim myDataBase As Database Dim myActiveRecord As Recordset 'abre la Base de datos Set myDataBase = OpenDatabase("C:DataBaseFolderDatabase.mdb") 'accesa al primer registro de la tabla Set myActiveRecord = myDataBase.OpenRecordset("Table_1", dbOpenForwardOnly) 'busca a través de todos los registros hasta llegar al end-of-file Do While Not myActiveRecord.EOF 'si el campo #1 contiene un valor distinto de cero 'inserta el valor del campo #2 en el documento 'en la posición actual del cursor If myActiveRecord.Fields("Field_1") <> 0 Then Selection.InsertAfter myActiveRecord.Fields("Field_2") End If 'accesa el registro siguiente myActiveRecord.MoveNext Loop 'finalmente cierra la base de datos myActiveRecord.Close myDataBase.Close End Sub Créditos Este sencillísimo y práctico ejemplo está traducido casi al pie de la letra de un tip dado por Bill Cohan, uno de los mejores expertos en VBA que conozco y que tiene muy buena voluntad para ayudar a los novatos en el newsgroup microsoft.public.word
  • 64. Curso de VBA Excel http://cursovisualexcel.wordpress.com/ejemplos-de-macros/ En esta página iremos insertando macros y códigos que pueden servirle de ayuda. Macro para solicitar confirmación de salir de Excel. ‘macro que solicita al usuario que confirme salir de Excel Private Sub salir() If msgbox(“¿Desea salir de Excel?”,vbQuestion+ vbYesNo)=vbYes Then Application.quit End If End Sub Macro para guardar archivo seleccionando ubicación Sub guardar_archivo() Dim stArchivo stArchivo = Application.GetOpenFilename(“Hoja de Excel , *.xls*”, _ , “Seleccione archivo “) End Sub Macro para guardar archivos en otro formato Sub guardar_archivo_otro() ‘con esta macro guardamos el archivo con la fecha y hora actual y formato csv Dim nombre,nombrearch,hoja,ruta nombre = Format(Now,“dd-mm-yy hh.mm.ss”) ruta = ActiveWorkbook.Path nombrearch = ActiveWorkbook.Name hoja = ActiveSheet.Name ActiveWorkbook.SaveAs Filename:=ruta & “” & hoja & nombre & “.csv”, FileFormat:=xlCSV ActiveSheet.SaveAs ruta & “” & nombrearch & nombre & “.xlsm” End Sub Copiar rango de una hoja a otra Si queremos que se quiera copiar los rangos de la hoja activa de una hoja a otra ejecutariamos la macro siguiente: Option Explicit Dim f, c Public Sub CopiarRango() ActiveCell.CurrentRegion.Select f = ActiveCell.Row c = ActiveCell.Column Selection.Copy Sheets(“Hoja2″).Activate Cells(f, c).Activate ActiveSheet.Paste End Sub
  • 65. Cerrar libro Excel (guardar cambios) ActiveWorkbook.Close ActiveWorkbook.Close Savechanges:=True ActiveWorkbook.Close(True) Cerrar libro Excel (sin guardar cambios) ActiveWorkbook.Close(False) ActiveWorkbook.Close Savechanges:=False Cerrar libro Excel (variable, sin guardar cambios) Application.DisplayAlerts = False Windows(Libro_mayor).Close Application.DisplayAlerts = True Abrir libro Excel (ruta fija) Workbooks.Open FileName:=”C:TrabajoInforme.xls” Desplazarnos a la última hoja del libro Sub ultima_hoja() Sheets(Sheets.Count).Select End Sub Desplazarnos a la primera hoja del libro Sub primera_hoja() Sheets(1).Select End Sub Copiar el contenido seleccionado en otra hoja Sub CopiaColumnas() Dim mirango As Range Dim col As Range Dim NuevaHoja As Worksheet Dim i As Integer Set mirango = Selection Worksheets.Add i = 0 For Each col In mirango.Columns col.Copy ActiveSheet.Range(“A1″).Offset(, i) i = i + 1 Next col End Sub Macro para crear índices de hojas en libros Private Sub Worksheet_Activate() Dim cHoja As Worksheet Dim L As Long L = 1 With Me
  • 66. .Columns(1).ClearContents .Cells(1,1) = “INDICE” .Cells(1,1).Name = “Indice” End With For Each cHoja In Worksheets If cHoja.Name <> Me.Name Then L = L + 1 With cHoja .Range(“A1″).Name = “Inicio” & cHoja.Index .Hyperlinks.Add Anchor:=.Range(“A1″), Address:=” “, SubAddress:=”Indice”,TextToDisplay:=”Volver al índice” End With Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=” “, SubAddress:=”Inicio” & cHoja.Index, TextToDisplay:=cHoja.Name End If Next cHoja End Sub Macro para imprimir hoja activa con datos Sub macro imprimir_ha() Range(“A1″) = “Lo que sea” ‘Imprimimos la hoja de excel con una sola copia ActiveWindow.SelectedSheets.PrintOutCopies:=1 End Sub Buscar la última fila vacía Sub ultimafila() ‘variable donde almacenamos el número de fila Dim ultima As Long ‘vamos subiendo por la columna A desde la última fila ultima = Range(“A65536″).End(xlUp).Row ‘le sumamos una porque queremos la 1ªfila vacía ultima = ultima + 1 ‘seleccionamos si queremos otra columna cambiar el número Cells(ultima,1).Select End Sub Encontrar última fila (en columna especificada) Dim intUltimaFila As Range If WorksheetFunction.CountA(Columns(1)) > 0 Then Set intUltimaFila = Range(“65536″).End(xlUp) MsgBox intUltimaFila.Address End If Suprimir filas vacías intLastRow = Columns(“A:A”).Range(“A65536″).End(xlUp).Row For r = intLastRow To 1 Step -1
  • 67. If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r Suprimir filas vacías Dim intNumDeFilas As Long Selection.SpecialCells(xlCellTypeLastCell).Select intNumDeFilas = Selection.Row For i = 1 To intNumDeFilas If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then Rows(i).Delete End If Next Suprimir filas vacías intUltimaFila = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count For r = intUltimaFila To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r Suprimir filas por condición Dim rngString As Range Do Set rngString = Cells.Find(“Aglis”,MatchCase:=False,_ LookAt:=xlPart, LookIn:=xlValues) If Not rngString Is Nothing Then rngString.EntireRow.Delete End If Loop Until rngString Is Nothing Suprimir filas vacías por dos condiciónes X, Y For i = intUltimaFila To 1 Step -1 Let strTest= Application.Cells(i,2) If strTest<> “X” And strTest<> “Y” Then Rows(i).Delete Next i Métodos abreviados de teclado en Excel Límites de Excel
  • 68. Número total de columnas disponibles en Excel.  Límite Excel 2003:256 (2^8)  Límite Excel 2007:16.384 (2^14) Número total de filas disponibles en Excel.  Límite Excel 2003:65.536 (2^16)  Límite Excel 2007:el 1.048.576 (2^20) Las celdas por hoja es la multiplicación de las filas por las columnas. Un libro puede tener un número variable de hojas,según nuestras necesidades.El límite estaba en 256 y está ahora en 1024. Número total de hojas disponibles en Excel.  Límite Excel 2003:256 (2^8)  Límite Excel 2007:1.024 (2^10) Cantidad total de memoria del PC que Excel puede utilizar.  Límite Excel 2003:1GB.  Límite Excel 2007:2 GB. Número de colores únicos permitido en un solo libro de trabajo.  Límite Excel 2003:56 (color puesto en un índice)  Límite Excel 2007:4.294.967.296 (casi 4300 millones,color 32-bit) Número de condiciones condicionales del formato en una celda.  Límite Excel 2003:3 condiciones  Límite Excel 2007:Limitado por memoria disponible Número de niveles para ordenar en una lista o una tabla.  Límite Excel 2003:3  Límite Excel 2007:64 Número de datos mostrados en el Autofiltro.  Límite Excel 2003:1.000  Límite Excel 2007:10.000 Número total de caracteres que puede exhibir una celda.  Límite Excel 2003:1.024 (cuando se ajusta a formato el texto)  Límite Excel 2007:32.768 o tanto como quepa en la celda (sin importar el formato) Número de caracteres por celda que el Excel puede imprimir.  Límite Excel 2003:1.024  Límite Excel 2007:32.768 Número total de los estilos únicos de la celda en un libro de trabajo (combinaciones de todo el formato de la celda).  Límite Excel 2003:4000  Límite Excel 2007:65.536 Longitud máxima de fórmulas (en caracteres).  Límite Excel 2003:carácteres 1.024
  • 69.  Límite Excel 2007:carácteres 8.192 Número de niveles de anidación que Excel permite en fórmulas.  Límite Excel 2003:7  Límite Excel 2007:64 Número máximo de discusiones a una función.  Límite Excel 2003:30  Límite Excel 2007:255 Número máximo de artículos que encuentra el comando “buscar todos”.  Límite Excel 2003:~64k (65472)  Límite Excel 2007:~2 mil millones Número de filas permitidos en una tabla dinámica.  Límite Excel 2003:65.536  Límite Excel 2007:1.048.576 Número de columnas permitidoen una tabla dinámica.  Límite Excel 2003:255  Límite Excel 2007:16.384 Número máximo de artículos únicos dentro de un solo campo de una tabla dinámica.  Límite Excel 2003:32.768  Límite Excel 2007:1.048.576 Longitud del nombre de MDX para un artículo de una tabla dinámica; también la longitud de la secuencia para una tabla dinámica emparentada.  Límite Excel 2003:255 caracteres  Límite Excel 2007:32.768 Longitud a la cual se truncan los campos que etiquetan una tabla dinámica; esto también incluye limitaciones de la longitud del subtítulo.  Límite Excel 2003:255  Límite Excel 2007:32.768 El número de campos (según lo visto en la lista del campo) que una sola tabla dinámica puede tener.  Límite Excel 2003:255  Límite Excel 2007:16.384 Número de celdas que pueden depender de un solo rango antes que Excel necesite hacer cálculos completos en vez de cálculos parciales (porque no puede seguir las dependencias requeridas para hacer cálculos parciales).  Límite Excel 2003:8.192  Límite Excel 2007:Limitado por memoria disponible
  • 70. El número de rangos diversos en una hoja que pueden tener dependencias antes de que Excel necesite hacer cálculos completos en vez de cálculos parciales (porque no puede seguir las dependencias requeridas para hacer cálculos parciales).  Límite Excel 2003:65.536  Límite Excel 2007:Limitado por memoria disponible Número de fórmulas en conjunto en una hoja de trabajo que pueden referir a otra hoja de trabajo.  Límite Excel 2003:65.536  Límite Excel 2007:Limitado por memoria disponible Número de categorías que las funciones personalizadas pueden encapsular.  Límite Excel 2003:32  Límite Excel 2007:255 Número de caracteres que se pueden actualizar en una referencia externa que no pertenece al libro de trabajo.  Límite Excel 2003:255  Límite Excel 2007:32.768 Número de filas de una o varias columnas que se pueden referir en una fórmula matricial (array formula).  Límite Excel 2003:65.335  Límite Excel 2007:No hay límites. Número de caracteres que se pueden almacenar y exhibir en una celda ajustada a formato de texto.  Límite Excel 2003:255  Límite Excel 2007:32.768 Macro que elimina las barras de desplazamiento Sub elimina_barra() With ActiveWindow .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With End Sub Macro que protege el libro y la hoja Sub proteger() ActiveWorkbook.Protect Password:=”1234″ Sheets(“Hoja1″).ProtectPassword:=”1234″ End Sub Calculo del NIF
  • 71. Esta función calcula el NIF (Número de Identificación Fiscal). Function nif(dni As Long) As String nif = Mid(“TRWAGMYFPDXBNJZSQVHLCKE”, (dni Mod 23) + 1, 1) End Function Share this:  Twitter1  Facebook2  Correo electrónico  Google  Me gusta: VBA de Excel – ejemplos prácticos de macros http://www.xltoday.net/vba_ejemplos-asp na de las utilidades principales de VBA es la de automatizar tareas cotidianas, como por ejemplo crear un atajo (del teclado) para la función de ‘Pegar como valor’ en Excel. Estas pequeñas aplicaciones suelen denominarse ‘macros’, pero Excel VBA también sirve para la programación de aplicaciones más complejas, como servicios de bases de datos y la manipulación de archivos. Ejemplos de macros VBA de Excel Esta lista de ejemplos VBA de Excel recopila algunas pequeñas aplicaciones de código VBA. Recuerda – haz una copia de seguridad antes de aplicar código VBA a tus archivos. Excel y otros programas Abrir Excel desde VB Método para abrir-copiar-modificar-cerrar Excel desde VB.
  • 72. Marcador de teléfono Cómo marcar el teléfono desde Excel (API). Importar texto de Word a Excel Aplicamos la función ‘Create Object’ de VBA para importar textos desde Word. Macro para pegar celdas Excel en tabla Word Mandar celdas Excel a una tabla nuevo de Word. Importar celdas de Excel a Excel ADO de Excel VBA nos deja conectar con otro libro Excel para importar datos. Excel y bases de datos Access a Excel (ADO) Importar (ADO) una tabla Access a Excel. Crear/modificar archivo de texto Código VBA – archivo de texto como base de datos. Importar dBase IV a Excel Importar una base de datos dBase IV a una hoja Excel. Abrir archivo de texto en Excel Ejemplo VBA cómo abrir archivos planos en Excel. Excel y Outlook Excel por e-mail Mandar hoja Excel por e-mail. Importar datos de Outlook a Excel Importar datos de Outlook a Excel. (VBA) Libros y hojas Excel Libros Libros,hojas etc. Hojas Código para insertar y ordenar las hojas Excel .
  • 73. Formatos Formatear celdas en Excel (VBA). Filas VBA: Trabajar con filas. Columnas VBA: Trabajar con columnas. Repasar archivos/carpeta Método VBA Excel para repasar varios archivos de una carpeta. Colores y filtros en Excel Colores Colores y Excel VBA, breve repaso. Colorear celdas al hacer click Un evento de la hoja para colorear celdas Excel seleccionadas. Filtrar con colores Truco para añadir colores al Autofiltro de Excel. Scrollrow – el rango visible Devolver el rango visible de la hoja Excel de la pantalla. Vínculos y acceso en Excel Acceso a hojas Restringir acceso a una o varias hojas de un libro Excel. Enlaces a todas las hojas Crear lista de enlaces a cada hoja del libro Excel. Crear archivos de cada hoja Crear archivo independiente de cada hoja Excel. Eliminar vínculos Eliminar vínculos externos/a otras hojas. Información del sistema o usuario Objeto ‘Application’ El objeto Application de Excel VBA nos da información.
  • 74. País y idiomas del usuario Ejemplo VBA: Devolver el país del usuario. Funcionalidad añadida El diálogo ‘Abrir archivo’ Abrir otro libro Excel a través del diálogo VBA ‘Abrir’. Ejemplos del messagebox El messageboxde VBA presenta información/interactua. Explorador de informes Explorar informes desde un Panel Principal. Reloj Crear un reloj en Excel empleando el OnTime. Barra de progreso Crear una barra de progreso en el StatusBar. Casilla de verificacion Evento Change para simular una casilla de verificación. Sistema de ayuda Emplear el evento Change para proporcionar ayuda al usuario. Temporizador El temporizador de Excel. Método WAIT Hacer que el código VBA pare durante un tiempo. Imprimir Incluir función VBA Excel para imprimir Funciónes para que el usuario pueda imprimir las hojas Excel cómodamente. Excel y VBA Copiar/exportar módulos VBA Ejemplo VBA para exportar módulos. Funciones
  • 75. Calcular dígitos de control Comprobar una cuenta bancaria española. Buscar INSTR Utilizar la función INSTR para filtrar una lista en Excel. Sumar un rango variable Aplicar fórmulas de Excel en VBA. Visual Basic para Aplicaciones: Curso Práctico http://vbacrash.blogspot.mx/ NUEVO! el curso en videos El curso de Visual Para Aplicaciones ahora está disponible en nuevo formato de videos mucho más facil de seguir. En este curso se enseña programación práctica, no para informáticos sino para personas comunes y corrientes interesadas en aprender a pogramar cualquier componente del Office, en este curso nos enfocamos principalmente a programar Word y Exel. ¿A quien sirve este curso? a cualquiera que necesite mejorar su productividad usando Office programando tareas repetitivas. Abogados; notarios; doctores; comerciantes; oficinistas y muchas otras personas pueden aprender a programar usando aplicaciones comunes de las que la mayoría de las personas no sospecha su potencial. No se necesita experiencia previa porque el curso parte desde cero, solamente ganas de aprender haciendoque es el metodo de este curso. Los invito a ver el trailer de introducción al curso MÓDULO 1: lo básico
  • 76. En los cuatro videos del módulo 1 aprenderá algunos hechos básicos sobre VBA: para qué sirve y como se hacen los programas con dos ejemplos prácticos de programación en Word. El manejo de los conceptos de este primer módulo deja al alumno en condiciones para seguir aprendiendo solo si así lo prefiere, tiene lo básico que se necesita para empezar a aprender el lenguaje en una aproximación práctica e intuitiva. Clase 0: Introducción En esta clase veremos tres ejemplos de programa hecho en VBA. El primero (de baja complejidad) es una formulario o carta-tipo programado dentro de un documento del Word, con texto fijo y otros textos variables, el ejemplo es un certificado pero puede aplicarse en muchos otros documentos o formularios, en la clase 3 se muestra como hacerlo. El segundo ejemplo (de complejidad madia) es un programa de control de una flota de camiones, que lleva muchos controles usando varios esquemas de cuenta corriente. El tercer ejemplo es el control de un bar (complejidad alta) que lleva varios controles de cuenta corriente y controles de inventario. Solo se muestran como ejemplo para dar una idea de la complejidad que se puede alcanzar programando una simple hoja de cálculo Excel. Clase 1: programar un conversor de monedas (creación de las pantallas) Nuestro primer programa es un conversor de monedas codificado dentro de un documento de Word. Es un ejemplo muy sencillo pero a partir de el se puede aprender casi todo lo básico que se necesita saber para comenzar a programar en VBA. En este módulo veremos como se diseña una pantalla y como se le agregan los componentes usando el entorno visual. Desafío: diseñe una pantalla como la que se muestra a continuación
  • 77. (Ya sé que no está muy bonita, pero es solo para que practiquen con los componentes y sus propiedades) Intermedio: algunas cosas básicas sobre las variables y sus nombres.Antes de entrar a programar les explicaré que son las variables y como deben usarse, esto sirve de referencia para las clases siguientes pero si se quiere terminar rápido el conversor de monedas se pueden saltar esta lección y pasar a la clase 3 directamente. Clase 2: programar un conversor de monedas (programando los componentes) En esta clase se agrega código a los componentes del conversor de monedas y se prueba para ver si funciona. También se puede ver como se depuran los errores. Clase 3: programar un formulario o carta-tipo En esta clase se programa una carta-tipo, la misma que se muestra al comienzo de este curso, que puede servir de base para crear cualquier tipo de documentos automatizados. MÓDULO 2: lo intermedio En los videos siguientes aplicaremos lo aprendido en el Modulo 1 programando tres prototipos de programa para una Agenda, un Inventario y una Cuenta Corriente considerando que son los tres esquemas más comunes en que se guarda la información,
  • 78. los prototipos no son operativos para una aplicación real pero si tienen el esqueleto del código necesdario para estas aplicaciones o cualquiera que se ajuste a alguno de esos esquemas para almacenar, procesar y entregar información. Intermedio: que son los prototipos En esta clase se explica que son los prototipos y para que sirven Clase 4: prototipo de una agenda Clase 5: prototipo de un inventario Clase 6.1: prototipo de Cuenta Corriente: como funciona Clase 6.2: prototipo de Cuenta Corriente: el código
  • 79. Como Crear un Formulario en Word VBA http://aricachile.wordpress.com/article/como-crear-un-formulario-en-word-vba-lyuza29o3r5u-29/ Paso a paso August 18, 2010 Print Article Citation , XML  Email   Authors  Bradanovic Tomas Abstract LA automatización de formularios en Word es una de las aplicaciones más útiles y poderosas del VBA, mostraré paso a paso como hacer un ejemplo sencillo que puede modificarse y adaptarse a muchos otros formatos Paso a paso Descargar FormularioSencillo.txt desde AQUI Abrir una carpeta llamada Formulario Copiar FormularioSencillo.txt a la carpeta Botón derecho Nuevo Nuevo documento del Word Cambiar nombre a FormularioConMacros.doc Herramientas Opciones Seguridad Seguridad de macros (cambiar a medio)
  • 80. Herramientas Macro Macros Nombre de la macro: formulario1 Macros en: FormularioConMacros.doc (documento) Crear Sub formulario1() ‘ ‘ formulario1 Macro ‘ Macro creada el 26/07/2010 por INTEL ‘ End Sub Escribir arriba del End Sub UserForm1.show Insertar UserForm (si el cuadro de herramientas no se ve) ver, Cuadro de Herramientas Crear Userform con 3 labels, 3 textboxes y 1 commandbuttom como muestra la figura siguiente Abrir FormularioSencillo.txt Colocar el cursor sobre el texto Boton derecho, Seleccionar todo.Botón derecho, Copiar Cerrar Volver a FormularioCon Macros.doc Doble clic en CommandButton!, debe aparecer Private Sub CommandButton1_Click() End Sub Colocar cursor arriba de End Sub Botón derecho, pegar
  • 81. Clic en “Grabar” Salir del editor e ir a la página en blanco de Word Poner mouse sobre barra de herramientas Boton derecho, personalizar Macros Guardar en: FormularioConMacros.doc Project.NewMacros.formulrio1 Con la ventana “personalizar” abierta Botón derecho, cambiar imagen del botón Grabar la página Eso es todo, haciendo click sobre el nuevo botón se comienza a ejecutar el macro. El código del macro es: ‘ Programa para llenar automáticamente un formulario en word ‘ Lo que está escrito con comilla simple son solo comentarios para explicar el programas, pueden omitirse ‘ With… EndWith sirve para no tener que repetir la misma instrucción en cada línea, en este caso Selection ‘ With Selection .ParagraphFormat.LineSpacingRule = wdLineSpaceSingle ‘Coloca espacio de líneas en “espacio simple” .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .Font.Bold = True ‘Coloca negrita .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .Font.Size = 16 ‘Coloca tamaño de letra en 16 .ParagraphFormat.Alignment = wdAlignParagraphCenter ‘Alineado al centro .TypeText Text:=”CERTIFICADO” ‘Escribe texto .Font.Size = 12 ‘Coloca tamaño de letra en 12 .TypeParagraph ‘Pasa a linea siguiente .Font.Bold = False ‘Desactiva negrita .ParagraphFormat.Alignment = wdAlignParagraphLeft ‘alineacion a la izquierda .TypeParagraph ‘Pasa a linea siguiente .TypeText Text:=”Certifico que el señor “ ‘Escribe texto .Font.Bold = True ‘Activa las negritas ‘Escribe texto .TypeText Text:=TextBox1.Text ‘Escribe el contenido de textbox1.text .Font.Bold = False ‘Desactiva las negritas
  • 82. .TypeText Text:=”, domciliado en “ ‘Escribe texto .TypeText Text:=TextBox2.Text ‘Escribe el contenido de textbox2.text .TypeText Text:=” teléfono “ ‘Escribe texto .TypeText Text:=TextBox3.Text ‘Escribe el contenido de textbox3.text .TypeText Text:=” es una persona honorable, de buenas costumbres, “ ‘Escribe texto .TypeText Text:=” que no consume alcohol y su comportamiento moral es intachable.” ‘Escribe texto .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeText Text:=” Se extiende el presente certificado a petición “ ‘Escribe texto .TypeText Text:=” del interesado con objeto de su postulación al Opus Dei” ‘Escribe texto .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .Font.Name = “Arial” ‘Cambia el font a Arial .Font.Size = 10 ‘Coloca tamaño en 10 .TypeText Text:=”Arica “ ‘Escribe texto .TypeText Text:=Date$ ‘Escribe la fecha .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .TypeParagraph ‘Pasa a linea siguiente .ParagraphFormat.Alignment = wdAlignParagraphCenter ‘Alineación al centro .Font.Bold = True ‘Activa negritas .TypeText Text:=” RR. PP. TOMAS BRADANOVIC S.J. “ ‘Escribe texto .Font.Bold = False ‘Desactiva negritas End With ‘Termina el ciclo Selection Unload UserForm1 Códigos de ejemplos para macros de Word en Visual Basic http://norfipc.com/utiles/codigos-ejemplos-macros-para-word-en-visual-basic.php
  • 83. Crear macros en Microsoft Word copiando y pegando el código en el editor de VBA. Recopilación de ejemplos prácticos para copiar y pegar. Cambiar el formato de párrafos, imprimir, insertar imágenes, comentarios y muchas otras acciones, que en ocasiones requieren varios pasos. Sencilla recopilación de algunos códigos para crear macros en Word, Excel y otras aplicaciones incluidas en la suite de Microsoft Office. Solo es necesario copiarlos y pegarlos en el editor de VBA incluido en estos programas, para crear los macros. El objetivo es facilitar la creación de macros que pueden resultar muy útiles para la ejecución de diversas tareas. También incentivar y estimular los que les agrada crear sus propias aplicaciones y configurar el programa que utilizan de forma personal. ¿Cómo usar los códigos para crear las macros? En otro artículo publicado en este sitio se explica en detalle el proceso de creación de las macros en los programas de Microsoft Office de las dos formas posibles, usando la "Grabadora de macros" y el "Editor de Visual Basic". En esta página solo iremos publicando y compartiendo los códigos que
  • 84. llegan a nuestras manos o creamos para nuestro uso personal, que se pueden insertar directamente en el editor de VBA y así crear macros. Solo es necesario copiar el código, abrir el editor usando las teclas ALT + F11 y pegar. Posteriormente abrir la ventana "Macros" (teclas ALT + F8), seleccionar la macro creada y ejecutarla. Lógicamente es posible asignar a cada macro un icono y situarlo en la Barra de acceso rápido o una combinación de teclas. Códigos para crear macros en Word Ejemplos de acciones elementales Algunos de los macros pueden ser sumamente sencillos. Experimenta con los siguientes códigos y modifícalos a tu gusto.
  • 85. Cualquier cambio hecho en el editor, toma efecto inmediatamente. Para conocer más de la estructura del código, puedes crear macros usando la "Grabadora de macros" y posteriormente observar el código en el "Editor de VBA". Cambiar formato El siguiente macro cambia el formato del texto seleccionado. Sub for1() ' Cambiar tamaño de la fuente Selection.Font.Size = 20 ' Cambiar el tipo de fuente Selection.Font.Name = "Britannic Bold" ' Poner texto en negrita Selection.Font.Bold = wdToggle ' Poner texto en italic Selection.Font.Italic = wdToggle ' Darle el color rojo Selection.Font.Color = wdColorRed End Sub Para alinear el texto usa: ' Alinear texto a la izquierda: Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft ' Alinear texto a la derecha: Selection.ParagraphFormat.Alignment = wdAlignParagraphRight ' Centrar texto: Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter ' Texto justificado completo Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify Para seleccionar todo el texto usa: Selection.WholeStory
  • 86. Insertar texto Para insertar cualquier texto predeterminado en el punto de inserción del cursor del ratón usa: Sub SustT() Selection.TypeText Text:="este texto" End Sub Códigos para copiar y pegar Para copiar cualquiera de los códigos da un clic en el cuadro de texto que los contienen y usa las teclas CONTROL + C. En los códigos las líneas antecedidas de una comilla (‘), en el editor se muestran de color verde, son solo comentarios. Imprimir todos los documentos abiertos Macro que nos permite enviar a la impresora de una vez, todos los documentos de Word que tengamos abiertos. Vista previa de impresión al 100% En las versiones recientes de Word al decidir imprimir un documento se abre la ventana de vista previa con la barra de opciones a la izquierda, por lo que