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ámetroTipoRequeridoDescripción
arrayArray (Variant)El array a unir
delimitadorStringNoEl 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