🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

VBA Comment en Excel — comentar código, la regla del apóstrofo y por qué nunca se ejecuta

|

VBA Comment en Excel — comentar código, la regla del apóstrofo y por qué nunca se ejecuta

TL;DR — Pon un apóstrofo ' delante de cualquier línea y todo lo que va después se convierte en un comentario: el compilador lo elimina antes de que tu macro se ejecute. Dos trabajos — dejar una nota, o desactivar código temporalmente sin borrarlo. No existe una sintaxis de bloque /* */; para apagar un bloque entero antepones un ' a cada línea (el botón Comment Block de la Edit toolbar lo hace en lote). Comenta el porqué, nunca el qué — un comentario que repite el código es una mentira esperando a que el código cambie.

Sub CommentBasics()
    ' Toda esta linea es una nota - el compilador la ignora
    Dim total As Long
    total = 100            ' un comentario al final explica el PORQUE, no el que

    ' MsgBox total         <- desactivado, no borrado: quita el ' para reactivarlo
End Sub

Lo que aprenderás

  • El modelo mental — un comentario es la única línea con la garantía de no ejecutarse nunca
  • Los tres tokens que solo viven en el código, y por qué los principiantes subestiman a los tres
  • El apóstrofo ' frente al más antiguo Rem, y cuándo es legal cada uno
  • Cómo comentar un bloque entero (y dónde se esconde el botón)
  • Por qué un comentario rompe una continuación de línea — y por qué esa trampa es silenciosa
  • Un comentario de código frente al objeto Comment / Note de celda — dos cosas distintas
  • La opinión: los únicos comentarios que valen los píxeles

El modelo mental: la única línea que nunca se ejecuta

Cada una de las demás líneas que escribes es una instrucción para la macro. Un comentario no lo es. En cuanto el compilador de VBA ve un apóstrofo, descarta el resto de esa línea — no se analiza, no se compila, no se ejecuta nunca. Esa única garantía es todo el sentido del asunto, y es la que impulsa los dos trabajos que hace un comentario:

  1. Explicar la intención al siguiente humano (a menudo tu yo futuro), y
  2. Desactivar código sin borrarlo, para que puedas probar un cambio y devolver la línea anterior con una sola pulsación.

Como un comentario es invisible para el compilador, comentar una línea es la edición más segura de VBA: no se pierde nada, no se arriesga nada. Y como es invisible para el compilador, un comentario equivocado no se detectará jamás — ningún error, ningún aviso, nunca. Ten esas dos ideas en la cabeza y el resto de esta guía se deduce solo.

Tres tokens que la macro nunca ejecuta

Un comentario no es una función solitaria — es una de las tres cosas que tecleas y que la macro en ejecución nunca ejecuta. Dan forma al código fuente y a la compilación, no a la ejecución, que es justo por lo que los recién llegados los descartan como trivialidades. Son la diferencia entre un VBA que puedes mantener y un VBA que se pudre.

Token Qué le hace a tu código fuente Qué le cuesta a la ejecución
' comentario Deja notas y desactiva código que el compilador elimina Nada — nunca se ejecuta
_ continuación de línea Parte una instrucción larga en varias líneas Nada — el parser lo borra antes de compilar
Option Explicit Obliga a declarar todos los nombres Se ejecuta en tiempo de compilación, así las erratas mueren antes de que arranque la macro

Domina los tres y las erratas mueren antes de ejecutarse, una línea de 300 caracteres deja de salirse de la pantalla, y el código muerto se activa y desactiva con un solo apóstrofo. Esta guía es el primer peldaño; los otros dos están a un clic.

El apóstrofo frente a Rem: usa el apóstrofo

VBA tiene dos marcadores de comentario, y no son iguales.

' El apostrofo funciona en cualquier sitio - linea entera o final de linea
x = 5          ' explica esta asignacion

Rem La instruccion Rem solo funciona como una instruccion COMPLETA
x = 5 : Rem necesitas dos puntos para poner Rem despues del codigo
Rem x = 5      ' <- Rem no puede ir al final de una linea sin dos puntos

El apóstrofo ' es el marcador moderno y universal: es legal al principio de una línea o colgando del final de cualquier instrucción. Rem es un resto de los primeros BASIC — es una instrucción, así que debe empezar una instrucción, y para colocarlo después de código necesitas un separador de dos puntos (x = 5 : Rem nota). No hay razón para recurrir a Rem en código nuevo. Aprende el apóstrofo y olvida que Rem existe, salvo la única vez que lo heredes en la macro de otra persona.

Comentar un bloque: el botón está escondido

VBA no tiene una sintaxis de comentario de bloque /* ... */. Para desactivar varias líneas pones un apóstrofo delante de cada una:

'    total = 0
'    For i = 1 To n
'        total = total + data(i)
'    Next i

Hacerlo a mano es tedioso, y por eso los principiantes borran código para comprobar si es el problema — y luego no pueden recuperarlo. No lo hagas. El editor de VBA trae los botones Comment Block y Uncomment Block que ponen o quitan el apóstrofo a todas las líneas seleccionadas de golpe. La pega: están en la Edit toolbar, que no se muestra por defecto. Actívala una vez con Ver > Barras de herramientas > Edit, y desactivar un bloque de diez líneas se convierte en seleccionar y hacer clic. Este es el hábito de depuración más útil de VBA: nunca borres código para probar una teoría — coméntalo, ejecuta y luego descoméntalo.

La trampa silenciosa: un comentario mata una continuación de línea

Aquí está la que te cuesta una tarde entera. No puedes poner un comentario en medio de una instrucción partida en varias líneas con la continuación _, porque el apóstrofo termina la línea lógica — y se lleva el _ por delante.

' ROTO - el comentario se come la continuacion
total = price _   ' suma el precio base
      + tax        ' <- "+ tax" es ahora una instruccion separada y rota

' CORRECTO - no pongas comentarios en lineas continuadas, o pon uno encima
' suma el precio base y el impuesto
total = price _
      + tax

Nada de esto parece incorrecto a primera vista, y el mensaje de error — Expected: end of statement en la línea + tax, o un resultado cambiado en silencio — apunta al lugar equivocado. La regla: una continuación de línea _ y un comentario no pueden compartir una línea física. Pon la explicación en su propia línea de comentario encima de la instrucción. (Aquí es donde chocan dos de nuestros tres tokens de código; la guía de continuación de línea cubre la otra mitad.)

Comentario de código frente al objeto Comment de celda

Dos cosas completamente distintas comparten la palabra comment, y quien busca aterriza aquí queriendo decir una u otra.

  • Un comentario de código (este artículo) — un apóstrofo en tu código VBA. Vive en el editor, documenta o desactiva código, y nunca aparece en la hoja de cálculo.
  • Un Comment / Note de celda — una nota amarilla adjunta a una celda de la cuadrícula, que añades en código con Range("A1").AddComment "text" (el antiguo) o mediante Range("A1").NoteText / la moderna Comments API con hilos. Son datos en la hoja, visibles para cualquiera que abra el archivo.

Si viniste a anotar tu código, quédate — todo lo de arriba aplica. Si lo que querías era dejar una nota en una celda desde una macro, ese es el modelo de objetos AddComment / NoteText, un tema completamente distinto. Confundir ambos es habitual precisamente porque Excel reutilizó la palabra.

La opinión: comenta el porqué, nunca el qué

La mayoría de los comentarios son ruido, y los peores son activamente dañinos. i = i + 1 ' add one to i no te dice nada que el código no dijera ya, y el día que alguien cambie la línea a i = i + step, el comentario se convierte en una mentira que ningún compilador señalará jamás. Un comentario que repite el código se pudre más rápido que el propio código.

Los comentarios que se ganan sus píxeles son los que el código no puede decir:

  • El porqué, no el qué — ' Los proveedores mandan fechas como texto; conviertelas antes de comparar explica una decisión.
  • Unidades y supuestos' el importe esta en centimos, no en dolares previene un bug real.
  • Casos límite y trampas' devuelve Empty en una hoja vacia - quien llame debe gestionarlo.
  • Código desactivado con un motivo y una fecha' 2026-09: quitado el reintento, la API ya es estable.

Y a menudo el mejor comentario es ningún comentario: una variable llamada totalCents gana a total ' in cents, y activar Option Explicit con declaraciones de verdad documenta la intención mejor que un párrafo de prosa. Escribe el código para que necesite menos comentarios, y luego haz que los pocos que conserves traten del porqué.

Cuando el trabajo real es entender la macro, no anotarla

Los comentarios te ayudan a leer el código que ya tienes. Pero la mitad de las veces la tarea real es la contraria — estás mirando una macro heredada de 300 líneas sin un solo comentario, intentando averiguar qué hace antes de atreverte a cambiarla. Leerla línea a línea, salpicarla de Debug.Print y reconstruir la lógica a mano puede costar más que el propio cambio. ExcelMaster te deja saltarte todo eso: describe lo que quieres en lenguaje natural —«limpia esta columna, quita los duplicados y suma el resto por mes»— y escribe y ejecuta el código, respaldando tu archivo primero. Obtienes el resultado sin descifrar el VBA sin comentar de otra persona, y el código que genera es lo bastante pequeño como para leerlo de verdad.

Preguntas frecuentes

¿Cómo comento una línea en VBA?

Pon un apóstrofo ' al principio de la línea (o en cualquier punto de ella — todo lo que va después del apóstrofo se ignora). Para comentar varias líneas de una vez, selecciónalas y haz clic en Comment Block en la Edit toolbar (Ver > Barras de herramientas > Edit para mostrarla), que añade un apóstrofo a cada línea seleccionada.

¿Cuál es la diferencia entre un apóstrofo y Rem en VBA?

Ambos marcan un comentario, pero el apóstrofo ' funciona en cualquier sitio — al principio de una línea o colgando del final de una instrucción — mientras que Rem es una instrucción y debe empezar una, necesitando dos puntos para ir tras código (x = 5 : Rem note). Usa el apóstrofo; Rem solo sobrevive en código heredado.

¿Cómo comento un bloque entero en VBA?

No hay sintaxis de bloque /* */. Selecciona las líneas y usa el botón Comment Block de la Edit toolbar para anteponer un apóstrofo a cada una, y Uncomment Block para quitarlos. Muestra la barra con Ver > Barras de herramientas > Edit si no ves los botones.

¿Por qué se rompe mi código cuando añado un comentario?

Casi siempre porque pusiste el comentario en una línea que termina con una continuación de línea _. El apóstrofo termina la instrucción lógica y se traga el _, así que la línea siguiente se convierte en una instrucción separada y rota. Mueve el comentario a su propia línea encima de la instrucción continuada.

¿Es un comentario de VBA lo mismo que un comentario de celda?

No. Un comentario de VBA (de código) es un apóstrofo en tu código y vive solo en el editor. Un Comment o Note de celda es una anotación amarilla sobre una celda de la hoja, añadida en código con Range.AddComment o Range.NoteText y visible en la cuadrícula. Comparten nombre pero no tienen relación.

Probado en

Probado en: Excel 365 (Windows 11), VBA 7.1 — última verificación el 06/09/2026.

Guías relacionadas: VBA Option Explicit · VBA Line Continuation · VBA Dim · VBA Debug.Print · VBA MsgBox