Empezaremos preguntando: ¿como se escribe FACEBOOK al revés? Respuesta: KOOBECAF, ¿como se escribe GOOGLE a la inversa? Respuesta: ELGOOG, ¿como se escribe YOUTUBE como texto inverso? RESPUESTA: EBUTUOY, esto me recuerda al archienemigo de superman que se llama MR. Mxyzptlk y escrito al revés es: MR. kltpzyxM

Como ya sabemos las macros del programa LibreOffice y OpenOffice son muy potentes, en esta ocasión les voy a mostrar las macros para convertir una palabra o frase como “texto a la inversa”, “cadena inversa”, “palabra al revés”, etc, veamos unos ejemplos:

Creo que si llegaste a este artículo ¡pues te felicito! que creo esta perdido entre millones de páginas de internet.

Ahora les mostrare el codigó de la macro que hace esto, luego una subrutina que hace esto, finalmente una función que hace lo mismo.

Option Explicit

Sub INVERTIR_ORDEN_CADENA_PALABRA
Dim Texto_Original As String ‘INICIO
Dim Texto_Invertido As String ‘RESULTADO FINAL
‘VARIABLES DEL BUCLE
Dim Total_Caracteres As BYTE
Dim Tmp2 As Byte
Dim Funcion_Mid As STRING
Dim Instruccion_Mid As String
Dim N_ultima_Letra As Byte
Dim co1 As Byte
‘RESULTADOS PARCIALES
Dim Guardar_Letra_Uno(255)
Dim Guardar_Letra_Dos(255)

‘INICIO
Texto_Original = INPUTBOX(“PALABRA PARA INVERTIR” )
Total_Caracteres = len( Texto_Original )
REDIM Guardar_Letra_Uno(Total_Caracteres)
REDIM Guardar_Letra_Dos(Total_Caracteres)
N_ultima_Letra = Total_Caracteres
Funcion_Mid = Texto_Original
Guardar_Letra_Uno() = Mid( Texto_Original, N_ultima_Letra, N_ultima_Letra – co1 )

FOR co1 = 0 To N_ultima_Letra -1
Tmp2 = N_ultima_Letra – co1
Funcion_Mid = Mid( Texto_Original, 1, N_ultima_Letra – co1 )
Texto_Original = Funcion_Mid
IF TMP2 > 0 THEN
Guardar_Letra_Uno() = Mid( Texto_Original, TMP2, TMP2 )
END IF
Instruccion_Mid = Mid( Texto_Original, 1, tmp2, Funcion_Mid )
Guardar_Letra_Dos(co1) = Guardar_Letra_Uno(co1)
NEXT
Texto_Invertido = Join( Guardar_Letra_Dos(), “” )
MsgBox Texto_Invertido, 64, “PALABRA(S) ESCRITA(S) AL REVÉS”
End Sub

Sub Invertir_cadena_Subrutina_Funcion
Dim Palabra As String
Dim Texto As String
Dim Resultado_Subrutina As String
‘SIN DUDA ALGUNA ES MEJOR USAR LA FUNCIÓN, ME PARECE MÁS SIMPLIFICADO QUE USAR LA SUBRUTINA,
‘USARE MEJOR LA FUNCIÓN PARA ESTA TAREA
Palabra = InputBox( texto )

INVERTIR_ORDEN_CADENA_SUB( palabra, Resultado_Subrutina )
msgBox Resultado_Subrutina, 32, “RESULTADO DE LA SUBRUTINA”
Palabra = InputBox( texto )
MsgBox INVERTIR_ORDEN_CADENA_FUN( Palabra ), 64, “RESULTADO DE LA FUNCIÓN”

End Sub

Sub INVERTIR_ORDEN_CADENA_SUB( Texto_Original As String, Texto_Invertido As String )
‘VARIABLES DEL BUCLE
Dim Total_Caracteres As BYTE
Dim Tmp2 As Byte
Dim Funcion_Mid As STRING
Dim Instruccion_Mid As String
Dim N_ultima_Letra As Byte
Dim co1 As Byte
‘RESULTADOS PARCIALES
Dim Guardar_Letra_Uno(255)
Dim Guardar_Letra_Dos(255)

‘INICIO
Total_Caracteres = len( Texto_Original )
REDIM Guardar_Letra_Uno(Total_Caracteres)
REDIM Guardar_Letra_Dos(Total_Caracteres)
N_ultima_Letra = Total_Caracteres
Funcion_Mid = Texto_Original
Guardar_Letra_Uno() = Mid( Texto_Original, N_ultima_Letra, N_ultima_Letra – co1 )

FOR co1 = 0 To N_ultima_Letra -1
Tmp2 = N_ultima_Letra – co1
Funcion_Mid = Mid( Texto_Original, 1, N_ultima_Letra – co1 )
Texto_Original = Funcion_Mid
IF TMP2 > 0 THEN
Guardar_Letra_Uno() = Mid( Texto_Original, TMP2, TMP2 )
END IF
Instruccion_Mid = Mid( Texto_Original, 1, tmp2, Funcion_Mid )
Guardar_Letra_Dos(co1) = Guardar_Letra_Uno(co1)
NEXT
Texto_Invertido = Join( Guardar_Letra_Dos(), “” )
End Sub

Function INVERTIR_ORDEN_CADENA_FUN( Texto_Original As String ) As String
Dim Texto_Invertido As String
‘VARIABLES DEL BUCLE
Dim Total_Caracteres As BYTE
Dim Tmp2 As Byte
Dim Funcion_Mid As STRING
Dim Instruccion_Mid As String
Dim N_ultima_Letra As Byte
Dim co1 As Byte
‘RESULTADOS PARCIALES
Dim Guardar_Letra_Uno(255)
Dim Guardar_Letra_Dos(255)
‘INICIO
Total_Caracteres = len( Texto_Original )
REDIM Guardar_Letra_Uno(Total_Caracteres)
REDIM Guardar_Letra_Dos(Total_Caracteres)
N_ultima_Letra = Total_Caracteres
Funcion_Mid = Texto_Original
Guardar_Letra_Uno() = Mid( Texto_Original, N_ultima_Letra, N_ultima_Letra – co1 )

FOR co1 = 0 To N_ultima_Letra -1
Tmp2 = N_ultima_Letra – co1
Funcion_Mid = Mid( Texto_Original, 1, N_ultima_Letra – co1 )
Texto_Original = Funcion_Mid
IF TMP2 > 0 THEN
Guardar_Letra_Uno() = Mid( Texto_Original, TMP2, TMP2 )
END IF
Instruccion_Mid = Mid( Texto_Original, 1, tmp2, Funcion_Mid )
Guardar_Letra_Dos(co1) = Guardar_Letra_Uno(co1)
NEXT
Texto_Invertido = Join( Guardar_Letra_Dos(), “” )
INVERTIR_ORDEN_CADENA_FUN = Texto_Invertido
End Function