Código VBA para insertar, eliminar y controlar comentarios.

Índice
  1. Adaptando el código a tus necesidades
  2. Acciones básicas de comentarios
    1. Probar si una celda tiene un comentario
    2. Agregar un comentario a una celda
    3. Obtener el texto de un comentario
    4. Borrar comentarios de una hoja de trabajo
    5. Borrar comentarios de un rango
  3. Recorriendo los comentarios
    1. Recorrer todos los comentarios en la hoja de trabajo.
    2. Recorrer todos los comentarios del libro de trabajo.
  4. Celdas con comentarios
    1. Seleccionar todas las celdas con comentarios.
    2. Recorra todas las celdas con comentarios en la hoja de trabajo
    3. Recorra todas las celdas con comentarios en el libro de trabajo.
  5. Cambiar la configuración de visualización de comentarios
  6. Mostrar e imprimir comentarios en una página separada
    1. Imprimir comentarios en una página adicional
    2. Enumere todos los comentarios en una hoja de trabajo separada
  7. Cambiar la forma de todos los cuadros de comentarios en una hoja de trabajo

A algunos usuarios de Excel les encantan los comentarios; Ponen comentarios en todos sus libros de trabajo. Otros usuarios los desprecian porque son antiestéticos y molestos. Cualquiera que sea tu preferencia, puedes controlarlos con VBA; agregar, eliminar, enumerar en una hoja de trabajo: todo se puede hacer con VBA.

Adaptando el código a tus necesidades

Es poco probable que el código siguiente cumpla con sus requisitos exactos. Cada fragmento de código utiliza variables para contener la hoja de trabajo, el comentario del libro, la celda o un valor de configuración. Al cambiar esas variables, el código se puede cambiar y combinar fácilmente con otros fragmentos de código para cumplir con sus requisitos específicos.

Acciones básicas de comentarios

Este primer grupo de macros presenta algunas de las acciones básicas que puede incluir como parte de un procedimiento más largo.

Probar si una celda tiene un comentario

El siguiente código comprobará si la celda activa tiene un comentario. Si es así, generará un cuadro de mensaje para indicar que existe un comentario.

Sub TestCellForComment()'Crear variablesDim c como RangeDim commentText As String'Establecer variablesEstablecer c = ActiveCell'Intenta establecer la variable. Si el error entonces el comentario no existeEn caso de error Reanudar NextcommentText = c.comment.TextEn error Ir a 0'Si el comentario existe entonces muestra el cuadro de mensajeSi comentarioText "" Luego MsgBox "La celda contiene un comentario"End IfEnd Sub

Agregar un comentario a una celda

El siguiente código insertará el texto "Insertar mi comentario" como comentario adjunto a la celda activa.

Sub AddComment()'Crear variablesDim c As RangeDim commentText As String'Establecer variablescommentText = "Insertar mi comentario"Establecer c = ActiveCell'Agregar comentarioc.AddComment'Cambiar el comentarioc.comment.Text Texto:=commentTextEnd Sub

Obtener el texto de un comentario

El siguiente código capturará el texto de un comentario y lo mostrará dentro de un cuadro de mensaje.

Sub DisplayCommentFromCell()'Crear variablesDim c como RangeDim commentText As String'Establecer variablesEstablecer c = ActiveCell'Intenta establecer la variable. Si el error entonces el comentario no existe. En caso de error Reanudar NextcommentText = c.comment.TextOn Error GoTo 0'Si el comentario existe entonces muestra commentIf commentText "" Luego MsgBox commentTextEnd IfEnd Sub

Borrar comentarios de una hoja de trabajo

La siguiente macro borrará los comentarios existentes de la hoja de trabajo.

Sub ClearCommentsWorksheet()'Crea variablesDim ws como hoja de trabajo'Establecer variablesEstablecer ws = ActiveSheet'Borrar comentarios de la hoja de trabajows.Cells.ClearCommentsEnd Sub

Borrar comentarios de un rango

La siguiente macro borrará los comentarios de un conjunto específico de celdas (A1-B20 de la hoja activa) en este ejemplo.

Sub DeleteCommentsFromRange()'Crea variablesDim ws As WorksheetDim rng As Range'Establecer variablesSet ws = ActiveSheetSet rng = ws.Range("A1:B20")'Borrar comentarios de worksheetrng.ClearCommentsEnd Sub

Recorriendo los comentarios

Algunas acciones se pueden aplicar a todos los comentarios al mismo tiempo (como borrarlos). Sin embargo, otras acciones deben aplicarse individualmente recorriendo cada uno de los comentarios uno por uno.

Recorrer todos los comentarios en la hoja de trabajo.

El siguiente código VBA recorrerá todos los comentarios en la hoja de trabajo activa.

Sub LoopThroughCommentsInWorksheets()'Crear variablesDim ws como WorksheetDim com como comentario'Establecer variablesSet ws = ActiveSheet'Recorrer cada comentario en la hoja de trabajoPara cada com en ws.Comments 'Hacer algo con cada comentario' Usar com. para hacer referencia a cada comentarioNext comEnd Sub

Recorrer todos los comentarios del libro de trabajo.

Lo siguiente amplía el código anterior y recorre todos los comentarios en el libro de trabajo activo.

Sub LoopThroughCommentsInWorkbook()'Crear variablesDim wb como libro de trabajoDim ws como hoja de trabajoDim com como comentario'Establecer variablesEstablecer wb = ActiveWorkbook'Recorrer cada hoja de trabajo para cada ws en wb.Worksheets 'Recorrer cada comentario en la hoja de trabajo para cada com en ws.Comments 'Hacer algo a cada comentario 'Utilice com. para hacer referencia a cada comentario Next comNext wsEnd Sub

Celdas con comentarios

Al pensar en comentarios, también debemos considerar la celda a la que se adjunta el comentario. Los siguientes ejemplos se relacionan específicamente con esos tipos de células.

Seleccionar todas las celdas con comentarios.

Excel proporciona un método para seleccionar todas las celdas con comentarios, que se utiliza en la siguiente macro.

Sub SelectCellsWithComments()'Crear variablesDim ws As Worksheet'Establecer variablesSet ws = ActiveSheet'Seleccione las celdas con comentariosws.Cells.SpecialCells(xlCellTypeComments).SelectEnd Sub

Recorra todas las celdas con comentarios en la hoja de trabajo

Cuando los métodos deben aplicarse a cada celda individualmente, es necesario recorrerlos uno por uno. El siguiente código recorrerá cada celda de la hoja de trabajo activa que contenga un comentario.

Sub LoopThroughAllCellsWithCommentsWorksheet()'Crear variablesDim ws As WorksheetDim c As Range'Establecer variablesSet ws = ActiveSheet'Recorrer cada comentario en la hoja de trabajoPara cada c En ws.Cells.SpecialCells(xlCellTypeComments) 'Hacer algo en cada celda 'Usar c para hacer referencia a cada celdaSiguiente cFin Sub

Recorra todas las celdas con comentarios en el libro de trabajo.

Lo siguiente amplía el código anterior y recorre todas las celdas del libro que tienen comentarios adjuntos.

Sub LoopThroughAllCellsWithCommentsWorkbook()'Crear variablesDim wb como libro de trabajoDim ws como hoja de trabajoDim c como rango'Establecer variablesEstablecer wb = ActiveWorkbook'Recorrer cada hoja de trabajo para cada ws en wb.Worksheets 'Recorrer cada comentario en la hoja de trabajo para cada c en ws.Cells.SpecialCells( xlCellTypeComments) 'Hacer algo en cada celda 'Usar c para hacer referencia a cada celda Siguiente cSiguiente wsEnd Sub

Cambiar la configuración de visualización de comentarios

La configuración de visualización de comentarios se puede cambiar a una de tres opciones:

  • El comentario esta oculto.
  • El comentario está oculto pero el indicador (es decir, el triángulo rojo) está visible
  • El comentario y el indicador son visibles.

La siguiente macro ocultará el comentario y el indicador.

Sub ChangeCommentDisplay()'Crear variablesDim IndicatorType As Long'Establecer variablesindicatorType = xlNoIndicator'Aplicar comentario IndicatorApplication.DisplayCommentIndicator = IndicatorTypeEnd Sub

Para aplicar las otras configuraciones, cambie esta línea de código:

tipo de indicador = xlNoIndicador

Para una de estas líneas de código:

Mostrar indicador de comentario:

tipo de indicador = xlCommentIndicatorOnly

Mostrar indicador de comentario y comentario:

tipo de indicador = xlCommentAndIndicator

Mostrar e imprimir comentarios en una página separada

Si prefiere que los comentarios se muestren en una sola hoja de trabajo o en una sola página impresa, estas dos macros siguientes le resultarán útiles.

Imprimir comentarios en una página adicional

Dentro de Excel, existen configuraciones que controlan los comentarios. No solemos buscarlos a menos que tengamos un problema o requisito específico. Una de estas opciones controla la configuración de impresión. La siguiente macro imprimirá todos los comentarios en una página separada.

Sub PrintSetupListComments()'Crear variablesDim ws As WorksheetDim printOptions As Long'Establecer variablesSet ws = ActiveSheetprintOptions = xlPrintSheetEnd'Establecer comentarios para imprimir en una página adicionalws.PageSetup.PrintComments = printOptionsEnd Sub

La configuración ImprimirComentarios tiene tres opciones. Por lo tanto esta línea de código:

opciones de impresión = xlPrintSheetEnd

Se puede canjear por una de estas opciones.

Configure los comentarios para imprimir si se muestran:

opciones de impresión = xlImprimirEnLugar

Configure los comentarios para que nunca se impriman:

opcionesdeimpresión = xlImprimirSinComentarios

Enumere todos los comentarios en una hoja de trabajo separada

El siguiente código creará una nueva hoja de trabajo que enumera todos los comentarios. La verificación de errores es limitada, por lo que si ya tiene una hoja de trabajo llamada "Comentarios", mostrará un error.

Sub ListAllCommentsOnSeparateSheet()'Crear variablesDim wb como WorkbookDim ws As WorksheetDim newWs As WorksheetDim c As RangeDim i As Integer'Establecer variablesSet wb = ActiveWorkbookSet newWs = wb.Worksheets.AddnewWs.Name = "Comments"'Insertar fila de encabezado en Comments WorksheetnewWs.Cells (1, 1).value = "Sheet"newWs.Cells(1, 2).value = "Cell Ref"newWs.Cells(1, 3).value = "Comment"'Recorre cada hoja de trabajo para cada ws en wb. Hojas de trabajo 'Ignorar errores de hojas de trabajo sin comentarios En caso de error Reanudar Siguiente 'Recorrer cada celda con un comentario Para cada c En ws.Cells.SpecialCells(xlCellTypeComments) 'Si no hay errores (es decir, existen comentarios) Si Err.Number = 0 Luego 'Contador de incremento i = i + 1 'Enumere los comentarios en la hoja de trabajo de comentarios newWs.Cells(i + 1, 1).value = ws.Name newWs.Cells(i + 1, 2).value = c.Address newWs. Cells(i + 1, 3).value = c.comment.Text End If Next c 'Restablecer comprobación de errores En caso de error Ir a 0Siguiente wsEnd Sub

Cambiar la forma de todos los cuadros de comentarios en una hoja de trabajo

Los cuadros de comentarios siempre parecen cuadrados aburridos, pero pueden tener diversas formas. Utilice el siguiente código para cambiar todas las formas a cuadros con una esquina doblada.

Sub ChangeCommentsBoxShape()'Crear variablesDim ws As WorksheetDim com As commentDim shapeType As Long'Establecer variablesSet ws = ActiveSheetshapeType = msoShapeFoldedCorner'Recorre cada celda con un comentarioPara cada com En ws.Comments 'Cambiar la forma com.Shape.AutoShapeType = shapeTypeNext comEnd Sub

Algunas formas alternativas que puedes probar son:

  • msoFormaRedondeadoRectángulo
  • msoFormaOval
  • msoShapeRectangle

Si desea otras formas, probablemente sea mejor usar la grabadora de macros para encontrar el nombre de la forma, o puede usar la función IntelliSense. IntelliSense enumerará todas las opciones disponibles como se muestra en la captura de pantalla a continuación.

Intellisense - mostrando las formas


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...