Función Join
La función Join combina elementos de array en una sola cadena usando un delimitador especificado. Es la operación inversa de Split y es muy útil para salida y formato de datos.
Sintaxis básica
Join(array, [delimitador])
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| array | Array (Variant) | Sí | El array a unir |
| delimitador | String | No | El delimitador (predeterminado espacio) |
Valor de retorno
Una cadena combinada (tipo String)
Uso básico
Unión simple
join_basico.bas
Sub JoinEjemploBasico()
Dim frutas() As Variant
Dim resultado As String
' Definir array
frutas = Array("manzana", "banana", "naranja")
' Unir con coma
resultado = Join(frutas, ",")
Debug.Print resultado ' manzana,banana,naranja
' Unir con espacio
resultado = Join(frutas, " ")
Debug.Print resultado ' manzana banana naranja
' Unir con saltos de línea
resultado = Join(frutas, vbCrLf)
Debug.Print resultado
' Salida:
' manzana
' banana
' naranja
End Sub
Omitir el delimitador
join_delimitador_predeterminado.bas
Sub JoinDelimitadorPredeterminado()
Dim palabras() As Variant
Dim oracion As String
palabras = Array("Hola", "Mundo", "desde", "VBA")
' Omitir delimitador (une con espacio)
oracion = Join(palabras)
Debug.Print oracion ' Hola Mundo desde VBA
End Sub
チェック
Cuando omites el delimitador, los elementos se unen con un espacio (” ”). Ejemplos prácticos
Construir cláusula SQL IN
join_sql_in.bas
Function ConstruirClausulaIN(valores As Variant) As String
Dim valoresComillas() As String
Dim i As Long
ReDim valoresComillas(LBound(valores) To UBound(valores))
For i = LBound(valores) To UBound(valores)
valoresComillas(i) = "'" & valores(i) & "'"
Next i
ConstruirClausulaIN = "(" & Join(valoresComillas, ", ") & ")"
End Function
Sub ProbarConstruirSQL()
Dim ciudades As Variant
ciudades = Array("Madrid", "Barcelona", "Valencia")
Debug.Print "SELECT * FROM usuarios WHERE ciudad IN " & ConstruirClausulaIN(ciudades)
' Salida: SELECT * FROM usuarios WHERE ciudad IN ('Madrid', 'Barcelona', 'Valencia')
End Sub
Crear listas HTML
join_lista_html.bas
Function CrearListaHTML(items As Variant) As String
Dim elementosLista() As String
Dim i As Long
ReDim elementosLista(LBound(items) To UBound(items))
For i = LBound(items) To UBound(items)
elementosLista(i) = " <li>" & items(i) & "</li>"
Next i
CrearListaHTML = "<ul>" & vbCrLf & Join(elementosLista, vbCrLf) & vbCrLf & "</ul>"
End Function
Sub ProbarListaHTML()
Dim frutas As Variant
frutas = Array("Manzana", "Banana", "Naranja")
Debug.Print CrearListaHTML(frutas)
' Salida:
' <ul>
' <li>Manzana</li>
' <li>Banana</li>
' <li>Naranja</li>
' </ul>
End Sub
Construir rutas de archivo
join_ruta_archivo.bas
Function ConstruirRuta(ParamArray partesRuta() As Variant) As String
ConstruirRuta = Join(partesRuta, "\")
End Function
Sub ProbarConstruirRuta()
Dim rutaCompleta As String
rutaCompleta = ConstruirRuta("C:", "Usuarios", "Juan", "Documentos", "informe.xlsx")
Debug.Print rutaCompleta ' C:\Usuarios\Juan\Documentos\informe.xlsx
End Sub
Crear informes formateados
join_informe.bas
Sub CrearInforme()
Dim lineasInforme() As String
Dim i As Long
ReDim lineasInforme(0 To 5)
lineasInforme(0) = "=== Informe de Ventas ==="
lineasInforme(1) = "Fecha: " & Format(Date, "yyyy-mm-dd")
lineasInforme(2) = ""
lineasInforme(3) = "Ventas Totales: $" & Format(12345.67, "#,##0.00")
lineasInforme(4) = "Artículos Vendidos: 150"
lineasInforme(5) = "======================="
' Unir con saltos de línea para mostrar
MsgBox Join(lineasInforme, vbCrLf), vbInformation, "Informe"
End Sub
Resumen
La función Join es el complemento de Split para manipulación de cadenas en VBA:
- Combina elementos de array con un delimitador especificado
- Predeterminado a espacio cuando se omite el delimitador
- Perfecta para crear datos CSV, cláusulas SQL, HTML e informes
- Funciona bien con Split para flujos de transformación de datos
- Esencial para construir salida formateada desde arrays
Domina Join junto con Split para capacidades completas de manipulación de cadenas en tus proyectos VBA.
#VBA
#Join
#Operaciones de cadenas
#Array