Guía del desarrollador al objeto Application de Excel 2010 (traducción automática)

Importante

En este artículo es la máquina que se traduce, vea la renuncia de responsabilidad. Encontrará la versión en inglés de este artículo aquí para su referencia.

Ayuda visual de Office

Resumen:  Obtenga información acerca de cómo utilizar el objeto Application en Microsoft Excel 2010 al escribir macros en Visual Basic para aplicaciones. El objeto de Application proporciona acceso a la configuración de toda la aplicación y objetos de nivel superior.

Se aplica a: Microsoft Excel 2010

Publicado:  Abril de 2011

Proporcionado por:  Peter Gruenbaum | Puente de SDK

Introducción

Escritura de Visual Basic para las macros de aplicaciones (VBA), se trabaja con objetos que pueden recibir instrucciones. El objeto Application es el objeto de nivel superior en el modelo de objetos de Excel, y contiene:

  • Configuración de toda la aplicación y las opciones. Muchas de estas opciones son las mismas que se encuentra en el cuadro de diálogo Opciones , disponible en el Backstage.

  • Métodos para objetos de nivel superior, como, por ejemplo, ActiveCell y ActiveSheet.

Este Visual artículo se muestra cómo realizar las tareas siguientes:

  • Colecciones comunes de acceso, como, por ejemplo, hojas, filas y columnas

  • Utilice activas propiedades (como las propiedades ActiveCell y ActiveSheet)

  • Tener acceso a la selección actual

  • Mostrar cuadros de diálogo

Este Visual cómo se basa en Developers Guide al objeto Application de Excel 2007 por Frank Rice. Este artículo contiene información adicional y ejemplos de código y, en general la información de Excel 2007 también es válida para Excel 2010.

Codifíquelo

Utilice la propiedad Application para devolver el objeto Application. Una vez que una referencia a la aplicación, para tener acceso a los objetos situados bajo el objeto Application, baja la jerarquía del modelo de objeto, por ejemplo, desde Application a Workbook a Worksheet a Cells.

Application.Workbooks(1).Worksheets(1).Cells(1,1)

Puede utilizar muchas de las propiedades y métodos que devuelven los objetos de interfaz de usuario más comunes, como, por ejemplo, la hoja de cálculo activa sin el calificador de objeto Application. Por ejemplo, en lugar de escribir lo siguiente.

Application.ActiveSheet.Name = "Monthly Sales"

Puede escribir lo siguiente.

ActiveSheet.Name = "Monthly Sales"

Sin embargo, tenga cuidado cuando utilice estas notaciones de acceso directo que tiene los correctos objetos seleccionados.

Hay unas pocas instancias donde debe utilizar el calificador de Application. Por ejemplo, el método OnTime necesita el calificador igual que las propiedades Width y Height de la ventana de la aplicación. En general, las propiedades que estén relacionados con la apariencia de la ventana de Excel, o que afectan al comportamiento general de la aplicación requieren el calificador de Application. Por ejemplo, la propiedad DisplayFormulaBar que se utiliza para mostrar u ocultar la barra de fórmulas y el método Calculate requiere el calificador.

Colecciones

Desde el objeto Application, puede obtener varios tipos de colecciones útiles. Esta sección describe las colecciones que se puede tener acceso.

Columnas y filas

Para seleccionar la cuarta columna, puede utilizar la propiedad Columns.

Application.Columns(4).Select

De forma similar, para seleccionar la cuarta fila, puede utilizar la propiedad Rows.

Application.Rows(4).Select
sheets

En el ejemplo de código siguiente se recorre todas las hojas de cálculo del libro e imprime las hojas de cálculo que contienen los rangos de datos. Tenga en cuenta que la colección de Sheets se utiliza como una propiedad del objeto Application.

For iSheet = 1 To Application.Sheets.Count
   If Not IsEmpty(Application.Sheets(iSheet).UsedRange) Then
      Application.Sheets(iSheet).PrintOut copies:=1
   End If
Next iSheet

Propiedades del objeto

Para tener acceso a los distintos objetos de la aplicación Excel 2010, hay un gran número de propiedades de Application: demasiados comentar aquí. Incluyen ActiveCell, ActiveChart, ActiveSheet, ActiveWindow, ActiveWorkbook, RangeSelection, Selection, StatusBar y ThisWorkbook (propiedades). Hay pocos que utiliza con frecuencia. Empecemos por la propiedad ActiveCell.

ActiveCell

La propiedad ActiveCell del objeto Application devuelve un objeto Range que representa la celda activa en la hoja activa en el libro activo. Si no especifica un calificador de objeto, esta propiedad devuelve la celda activa en la ventana activa. Tenga cuidado para distinguir entre la celda activa y una selección de celdas. La celda activa es una única celda dentro de la selección actual. La selección puede contener una colección de celdas, pero sólo una es la celda activa. En el ejemplo de código siguiente se cambia el formato de fuente de la celda activa. Tenga en cuenta que para asegurarse de que está trabajando con la celda correcta, hace el método Activate de la colección Worksheets que Sheet1 la hoja de cálculo activa.

Worksheets("Sheet1").Activate 
With ActiveCell.Font 
   .Bold = True 
   .Italic = True 
End With
ActiveChart

La propiedad ActiveChart devuelve un objeto Chart que representa el gráfico activo, ya sea un gráfico incrustado o una hoja de gráfico. Un gráfico incrustado se considera activo cuando está seleccionado o activado. En el ejemplo de código siguiente se utiliza la propiedad ActiveChart para agregar un gráfico de columnas 3D a la hoja de cálculo de Monthly Sales.

Charts.Add
With ActiveChart
   .ChartType = xl3DColumn
   .SetSourceData Source:=Sheets("Sheet1").Range("B3:H15")
   .Location Where:=xlLocationAsObject, Name:="Monthly Sales"
   .HasTitle = True
   .ChartTitle.Characters.Text = Monthly Sales by Category
End With
hoja activa

La propiedad ActiveSheet devuelve un objeto Worksheet que representa el sheet─that seleccionado actualmente es, en la parte superior de la hoja de cálculo. Sólo una hoja de un libro puede ser la hoja activa. En el ejemplo de código siguiente se copia la hoja de cálculo activa tres veces y coloca las copias de Sheet1.

For numtimes = 1 To 3 
   ' Put copies in front of Sheet1. 
   ActiveWorkbook.ActiveSheet.Copy _ 
      Before:=ActiveWorkbook.Sheets("Sheet1") 
Next
ActiveWindow

La propiedad ActiveWindow devuelve un objeto Window que representa la ventana activa, que es la ventana en la parte superior. En el ejemplo de código siguiente se selecciona y se imprime una hoja de cálculo y, a continuación, repite el proceso para una segunda hoja de cálculo. La propiedad ScreenUpdating se establece en False para eliminar un parpadeo mientras se ejecuta la macro.

Application.ScreenUpdating = False
Sheets("Sales").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Expenses").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveWorkbook

La propiedad ActiveWorkbook devuelve un objeto Workbook que representa el libro en la ventana activa, que es la ventana en la parte superior. Este ejemplo establece el modo de cálculo manual, para que los otros libros no calcular, a continuación, recorre y vuelve a calcular cada hoja de cálculo del libro activo.

Dim wks As Worksheet
Application.Calculation = xlManual
For Each wks In ActiveWorkbook.Worksheets
   wks.Calculate
Next
Set wks = Nothing
RangeSelection

La propiedad RangeSelection devuelve un objeto de Range que representa las celdas seleccionadas en la hoja de cálculo en la ventana especificada aunque un objeto gráfico esté activo o seleccionado en la hoja de cálculo. Cuando se selecciona un rango de celdas, la propiedad RangeSelection y el objeto de Selection representan el mismo rango de celdas. Cuando se selecciona un gráfico, la propiedad RangeSelection devuelve la selección de celdas. El ejemplo de código siguiente muestra los tres primeros caracteres en una celda. Quizá se pregunte por qué se utiliza una propiedad de Name dos veces en una fila. RangeSelection.Name devuelve la dirección del rango, como, por ejemplo, Sheet1!$A$1:$B$15, y, a continuación, la propiedad Name de rango devuelve el nombre del rango de sí mismo.

Range("A1").Select
MsgBox Left(ActiveWindow.RangeSelection.Name.Name, 3)
Selección

La propiedad Selection devuelve el objeto seleccionado en la ventana activa para un objeto Application. Por ejemplo, las celdas, la propiedad devuelve un objeto Range; los gráficos, devuelve un objeto Chart. Si se utiliza la propiedad sin calificador de objeto, es equivalente a utilizar Application.Selection. En el ejemplo de código siguiente se cuenta el número de celdas de la selección y se muestra el resultado en un cuadro de mensaje.

Dim cell As Object 
Dim count As Integer 
count = 0 
For Each cell In Selection 
   count = count + 1 
Next cell 
MsgBox count & " item(s) selected"
ThisWorkbook

La propiedad ThisWorkbook devuelve un objeto Workbook que representa el libro donde se ejecuta el código de macro actual. Esta propiedad permite que los complementos hacer referencia al libro que contiene el código. La propiedad ActiveWorkbook no funciona en este caso porque el libro activo puede no ser el que contiene el código del complemento. En otras palabras, la propiedad ActiveWorkbook devuelve el libro de complemento; Devuelve el libro al que llama el complemento. Si crea un complemento desde el código de Visual Basic, se debe utilizar la propiedad ThisWorkbook para calificar cualquier instrucción que debe ejecutarse en el libro que se compile como complemento. Este ejemplo de código cierra el libro que contiene el código de ejemplo. Los cambios del libro, si hay alguno, no se guardan.

ThisWorkbook.Close SaveChanges:=False

métodos

Esta sección describe algunos de los métodos que se pueden acceder desde el objeto Application. Analiza los cuadros de diálogo y cuadros de entrada.

Cuadros de diálogo

El método GetOpenFilename muestra el estándar de cuadro de diálogo Abrir y se obtiene un nombre de archivo del usuario sin necesidad de abrir todos los archivos. El método GetOpenFilename le ofrece el mayor control sobre el proceso de abrir un archivo desde su aplicación, porque todo lo que hace es devolver el nombre completo de ruta de acceso y el archivo seleccionado por el usuario como una cadena. ¿Qué hacer con esa información es suya. Por ejemplo, puede pasar el resultado del método OpenText. En el ejemplo de código siguiente se muestra el cuadro de diálogo Abrir con el filtrado en el conjunto del cuadro No se ha encontrado para Archivos de texto (*.txt) y, a continuación, muestra un cuadro de mensaje de la elección del usuario. Tenga en cuenta que el archivo no está abierto.

Dim fileToOpen As String
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt") 
If fileToOpen <> "" Then 
   MsgBox "Open " & fileToOpen 
End If

A diferencia del método GetOpenFilename, el método FindFile muestra el cuadro de diálogo Abrir y permite al usuario abrir un archivo. Si un archivo nuevo se abre correctamente, el método devuelve True. Si el usuario cancela el cuadro de diálogo, este método devuelve False. En el ejemplo de código siguiente se muestra un mensaje que indica al usuario para abrir un archivo específico y, a continuación, muestra el cuadro de diálogo de Open. Si el usuario no puede abrir el archivo, se muestra un mensaje.

Dim bSuccess As Boolean
Msgbox "Locate the MonthlySales.xls file."
bSuccess = Application.FindFile
If Not bSuccess Then
   Msgbox "File not open."
End If

Puede abrir estos cuadros de diálogo de archivo, o cualquier otro diálogo común de archivo mediante el uso de la colección Dialogs que forma parte de Excel. Una de las ventajas de utilizar la colección de Dialogs cuando se utiliza el método Show, se puede pasar argumentos para modificar el comportamiento predeterminado del cuadro de diálogo integrado. Para encontrar los argumentos a establecer para un cuadro de diálogo determinado, busque la constante del cuadro de diálogo correspondiente en el tema de Listas de argumentos de cuadros de diálogo integrados en la referencia del programador de Excel.

  1. Abra un módulo VBA.

  2. Para mostrar el Explorador de objetos, en el menú Ver , haga clic en el Explorador de objetos. O bien, presione F2.

  3. Escriba xlDialog en el cuadro de búsqueda.

  4. Haga clic en el botón de búsqueda.

InputBox

El método InputBox muestra un cuadro de diálogo que solicita al usuario un valor. Este método le permite realizar alguna validación selectiva de la entrada especificando el tipo de datos esperado por el usuario. Ésta es la sintaxis del método, donde Prompt es el mensaje mostrado en el cuadro de diálogo, por lo que puede permitir que el usuario conoce el tipo de datos que se espera, Title es el título mostrado en la parte superior del cuadro de diálogo, Default es el valor predeterminado que se muestra inicialmente, Left y Top se utilizan para especificar la posición del cuadro de diálogo, HelpFile y HelpContextID especifican un archivo de ayuda y qué tema para mostrarlo y Type es el tipo de devolución de datos. Tenga en cuenta que Left y Top son relativas a la esquina superior izquierda de la pantalla y se expresan en puntos. Además, si se especifican HelpFile y HelpContextID, un botón de Ayuda se incluye en el cuadro de diálogo. Type, el valor predeterminado es 2 (texto). Los tipos permitidos incluyen una fórmula, número, cadena, valor lógico, una referencia de celda y el valor de error y una lista de valores y se muestran en la tabla 1.

Tabla 1. Tipos de datos devueltos InputBox

Valor Type
: {0} Una fórmula. La fórmula se devuelve como una cadena. Esto es el único argumento requerido.
{1} Un número. También puede incluir aquí una fórmula con valores de modo que devuelve un valor.
{2} Texto (cadena).
4 Un valor lógico (True o False).
8 Una referencia de celda, como un objeto Range.
16 Un valor de error como # N/A.
64 Una lista de valores.
Gg192737.note(es-es,office.14).gifNota:
Si Type es 8, debe utilizar la instrucción Set para asignar el resultado a un objeto Range, tal como se muestra en el siguiente ejemplo de código.

En el ejemplo de código siguiente se pide al usuario el número de copias y se imprime el número de la hoja de cálculo activa. Tenga en cuenta que el tipo especifica que el método espera un número.

Dim TotalCopies As Long, NumCopies As Long
Dim sPrompt As String, sTitle As String
sPrompt = "How many copies do you want?"
sTitle = "Prints the active sheet"
TotalCopies = Application.InputBox(Prompt:=sPrompt, _
   Title:=sTitle, Default:=1, Type:=1)
For NumCopies = 1 To TotalCopies
   ActiveSheet.PrintOut
Next NumCopies
Léalo

El artículo de Frank Rice (Developers Guide al objeto Application de Excel 2007) contiene información adicional sobre el objeto Application. Incluye lo siguiente:

  • Ejecutar el método. El método Run ejecuta una macro o llama a una función.

  • Eventos del objeto de aplicación. El objeto de Application expone varios eventos que puede utilizar para supervisar las acciones para toda la aplicación Excel.

  • Activa y desactiva las alertas. Permite eliminar o guardar una hoja de cálculo sin preguntar al usuario.

  • Enviar información al Bloc de notas mediante el uso de SendKeys. Este ejemplo copia un rango de datos de Excel en el Bloc de notas y, a continuación, guarda el archivo de Bloc de notas.

  • Programación de una Macro para ejecutarla en un tiempo especificado y el intervalo. Este ejemplo se utiliza el método OnTime del objeto Application para ejecutar un procedimiento en un momento determinado o a intervalos de tiempo regulares.

Consultar

Ver el vídeo

Ver el vídeo | Longitud: 00: 10: 50

Explórelo

 

Acerca del autor

Peter Gruenbaum

Colaborador de la comunidad  Peter gruenbaum, comenzó como un físico, pero se convirtió en un desarrollador de software, trabaja en tecnologías tan diversas como Tablet PC, aumentar la realidad, diseño asistido por computadora y simulación quirúrgico. Se fundó de LLC de puente de SDK para reunir su amor de tecnología y la escritura, donde escribe y enseña acerca de la tecnología.

Nota

Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.