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 antiguoRem, 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:
- Explicar la intención al siguiente humano (a menudo tu yo futuro), y
- 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 medianteRange("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 compararexplica una decisión. - Unidades y supuestos —
' el importe esta en centimos, no en dolarespreviene 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
