¿Almacenar variables en MS Word y usarlas en la aplicación de variables en hipervínculos?

¿Almacenar variables en MS Word y usarlas en la aplicación de variables en hipervínculos?

Tengo un escenario en el que proporciono más de20 hipervínculosde una máquina virtual. Entonces, si las máquinas virtualesLa IP se cambia, Necesitocambiar manualmentepor todo el documento. ¿Hay alguna manera de que pueda almacenar variables como

vm_ip = "ec2-13-211-bla-bla.amazonaws.com"

Entonces, en lugar de dar un hipervínculoec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller, Puedo dar{vm_ip}/swagger-ui.html/food-controller

Algo como esto. Estaba investigando macro, pero era confuso y no tenía idea de cómo funciona.

Respuesta1

  1. Esto puede ser mucho más complicado de lo que parece, por lo que esta respuesta es bastante larga. Hay algunas cosas clave que comprender y muchos pasos. En mi opinión, eso no es algo en lo que pueda confiar que un usuario final lo haga correctamente, al menos no sin un muy buen conjunto de instrucciones. Personalmente, creo que es una tarea de "programación" y, dado que no es probable que alguien la haga con mucha frecuencia, diría que todavía necesita un buen conjunto de instrucciones.

  2. Si solo desea que estos hipervínculos funcionen en Word, existen dos posibilidades principales dependiendo de si desea que estos hipervínculos sean solo textos o hipervínculos activos.

    Si desea insertarlos en Word de tal manera que funcionen cuando guarda el documento como HTML o PDF, esta respuesta no cubre eso y debe modificar su pregunta para incluir ese requisito. Además, la codificación de campo que se describe aquí solo se puede usar en versiones de escritorio de Word (también puede funcionar en una de las versiones web o de "dispositivo", pero la última vez que miré estas versiones realmente no funcionan bien con códigos de campo.

  3. Por lo tanto, si desea que estos vínculos sean textos en Word que Word no trata como vínculos activos (por ejemplo, pueden estar en su documento para que las personas puedan copiar el texto del vínculo en otro lugar), puede hacerlo usando SET y marcador. campos.

    Por ejemplo, si solo tiene una dirección "base" como "ec2-13-211-bla-bla.amazonaws.com" que reutiliza en muchos lugares, tal vez con información de dirección adicional, puede usar

    { ESTABLECER base1 "ec2-13-211-bla-bla.amazonaws.com" }

    al principio de su documento (de hecho, el encabezado de la primera página puede ser un lugar más seguro para colocarlo para evitar una eliminación accidental). Luego, siguiendo el ejemplo que diste, necesitas un campo REF:

    {REF base1}/swagger-ui.html/food-controller

    (En realidad, existe una ventaja al omitir el REF):

    { base1 }/swagger-ui.html/food-controller

    Todo lo que {} debe ser los pares de llaves de código de campo especiales que puede insertar usando Ctrl-F9 en la versión de escritorio de Windows de Word.

    Hasta donde yo sé, la separación de la URL completa en un campo REF y algo de texto sin formato impide que Word intente convertir el texto del enlace resultante en un campo HIPERVÍNCULO en el que se puede hacer clic.

    Cuando necesite cambiar "ec2-13-211-bla-bla.amazonaws.com" por otra cosa, por ejemplo, tal vez sea solo "ec2-13-211-new-bla-bla.amazonaws.com", modifique eso texto en el campo SET, actualice el campo SET (seleccione y presione F9) y luego actualice todos los demás campos (por ejemplo, Ctrl-A, F9).

    Si desea algo un poco más difícil de eliminar accidentalmente que un campo SET, puede crear y utilizar una propiedad de documento personalizada. por ejemplo, en Word 2016/2019/365,

    a. ir a Archivo->Información

    b. haga clic en el menú desplegable Propiedades (en la parte superior de la columna de la derecha)

    C. haga clic en Propiedades avanzadas

    d. haga clic en la pestaña Personalizar

    mi. en el cuadro de texto, escriba "base1"

    F. en el cuadro Tipo, asegúrese de que esté seleccionado "Texto"

    gramo. en el cuadro Valor, escriba ec2-13-211-bla-bla.amazonaws.com

    h. asegúrese de que la casilla "Enlace al contenido" no esté marcada

    i. haga clic en Aceptar

    Entonces la codificación de campo que necesita para el enlace es

    { DOCPROPERTY base1 }/swagger-ui.html/food-controller

    Para actualizar los enlaces, volvería al cuadro de diálogo Propiedad personalizada, cambiaría el valor de la propiedad demo1, luego seleccionaría el texto del documento y actualizaría todos los campos del documento (ctrl-A, F9 nuevamente).

    Si tiene varias "direcciones base" diferentes, entonces necesitará varios campos SET o varias Propiedades de documento personalizadas, por ejemplo, llamadas base1, base2, base3 o lo que sea.

  4. Si desea un campo de hipervínculo en el que se pueda hacer clic, entonces se vuelve un poco más complicado, porque entonces debe anidar su campo REF dentro de un campo HIPERVÍNCULO como este:

    { HIPERVÍNCULO "{ base1 }/swagger-ui.html/food-controller" }

    De nuevo,todolos { } tienen que ser esos caracteres especiales de llave de campo Ctrl-F9, no los que puedes escribir en el teclado.

    Pero hay dos problemas:

    a. El texto que se muestra se corrige cuando Word crea por primera vez el campo HIPERVÍNCULO (o cuando lo actualiza por primera vez). Además, está arreglado para que sea el mismo que el "texto del enlace" inicial que proporcionó.

    b. Word tiende a resolver el campo REF (es decir, reemplazar el campo por su resultado) cuando guarda, cierra y vuelve a abrir el documento. Entonces, en ese momento, pierde la capacidad de modificar la dirección base y actualizar los hipervínculos.

    Probablemente no notarás (b) si experimentas con un campo de hipervínculo, porque lo que parece impedir que Word resuelva el campo REF es tener un marcador (que puedes insertar manualmente o usar un campo SET) en algún lugar del campo HIPERVÍNCULO. . Debido a que Word inserta un marcador oculto llamado _GoBack en el punto de inserción, si lo último que hizo antes de cerrar el documento fue editar un campo HIPERVÍNCULO,esoLos campos anidados del campo probablemente se conservarán cuando vuelva a abrir.

    Entonces, el truco para evitar que los campos HYPERLINK pierdan su codificación anidada es asegurarse de que cada uno tenga un marcador. Puede hacerlo insertando un campo SET con un nombre diferente en cada HIPERVÍNCULO, como este:

    { HIPERVÍNCULO "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } } { HIPERVÍNCULO "{ base1 }/swagger-ui.html/something-else" { SET save2 " " } }

    o puedes intentar generar un nuevo nombre de marcador automáticamente para cada campo de hipervínculo, usando un código como este:

    { HIPERVÍNCULO "{ base1 }/swagger-ui.html/food-controller" { SET "guardar{ SEQ guardar }" " " } } { HIPERVÍNCULO "{ base1 }/swagger-ui.html/algo-else" { SET " guardar{ SEQ guardar }" " " } }

    (NB, creo que esta idea se originóaquí. El hecho de que se base en un "truco" significa que Microsoft podría fácilmente socavarlo haciendo un cambio de software, pero parece funcionar por el momento).

    Debería poder utilizar campos SET/REF ​​o el enfoque de propiedad de documento personalizado para la parte { base1 }, como se describe anteriormente.

    Finalmente, ¿qué pasa con el problema (a), es decir, el "texto para mostrar" del enlace?

    En realidad, esto es un poco más difícil de resolver.

    R. Suponga que desea un "texto para mostrar" que sea independiente del "texto del enlace"; por ejemplo, si desea que el texto para mostrar sea

    mi texto en pantalla

    luego, primero, crearía el hipervínculo que usted coloca y que eventualmente usará, por ejemplo

    { HIPERVÍNCULO "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }

    Luego, donde realmente desea el hipervínculo, inserte un hipervínculo que muestre el texto para mostrar que desea. Una forma es insertar un campo HIPERVÍNCULO manualmente, por ejemplo

    • use Ctrl-F9 para insertar un par de llaves de código de campo { }

    • adentro, escriba HIPERVÍNCULO "mi texto para mostrar"

    • seleccione el campo y use F9 para actualizar su resultado. El resultado debería mostrar el texto que deseas.

    • seleccione y copie el texto completo de ese otro campo HIPERVÍNCULO "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " }

    • seleccione HIPERVÍNCULO "mi texto para mostrar" y pegue el otro código para reemplazarlo

    • actualizar el valor del campo.

    Hay un problema con esto que puede resultar evidente si lees hasta "B". Te lo explicaré al final.

    B. Si, en cambio, desea que el texto mostrado sea el mismo que el texto del enlace, debe confiar en otro truco.

    Digamos que usaste esta codificación.

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    
    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }
    

    Entonces lo que tienes que hacer esborrarel marcador "base1", luego actualice los campos HIPERVÍNCULO. En ese punto deberías ver que el resultado del campo HIPERVÍNCULO muestra un error como este (en la versión en inglés de Word):

    Error! Hyperlink reference not valid.
    

    Esto parece restablecer el texto en pantalla. Ahora puede volver a crear el marcador base1 con la dirección que desee y actualizar todos los campos del HIPERVÍNCULO nuevamente.

    Cuando utiliza campos SET y campos REF, no es necesario eliminar el campo SET. Cambias el SET a SEQ:

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    a

    { SEQ base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    Luego actualice el campo y eso destruirá el marcador.

    Después de haber actualizado los hipervínculos, cambia SEQ nuevamente a SET y modifica la dirección, por ejemplo, para que tenga

    { SET base1 "ec2-13-211-new-bla-bla.amazonaws.com" }
    

    luego actualice el campo, luego todos los campos de HIPERVÍNCULO.

    Hacer lo equivalente con Propiedades de documento personalizadas probablemente sea un poco más complicado porque puede cambiar el nombre de las propiedades en un solo paso. Probablemente lo mejor que pueda hacer es seleccionar la propiedad en la lista, cambiar el nombre y hacer clic en Agregar. En realidad, eso crea una nueva propiedad. Elimine el anterior, actualice los campos HIPERVÍNCULO, luego regrese y vuelva a crear los nombres y valores de propiedad que necesita.

    Como observación final, si realmente necesita acercarse a "A", donde el texto mostrado no cambia, debenohaga cualquier cosa que elimine el valor del marcador "base1". Si lo hace, se restablecerá el texto mostrado y probablemente tendrá que volver a insertar un campo HIPERVÍNCULO que recreará el texto que desea. No es bueno.

Respuesta2

Si solo desea establecer un valor, puede usar lo que dijo @yokki.

Para hipervínculo, Word proporciona "base de hipervínculo". Entonces, si proporciona "swagger-ui.html/food-controller" en el hipervínculo, tomará {$hyperlink_base}/swagger-ui.html/food-controller. Si desea utilizar un hipervínculo de otros sitios web y no desea utilizar una "base de hipervínculo", utilice la URL completa.

¿Cómo configurar la "base de hipervínculo"?

  1. Ir a la cinta "Archivo"
  2. "Propiedades" superior derecha
  3. haga clic en él y seleccione "Propiedades avanzadas".
  4. Solo en la pestaña "resumen", el último campo contiene "base de hipervínculo".

En mi caso, lo configuré en "ec2-13-211-bla-bla.amazonaws.com".

Entonces, todos mis enlaces donde di la ruta relativa, no la URL completa,

Se necesita "ec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller".

Entonces, si necesito cambiar la IP, simplemente actualizaré la "base de hipervínculos".

información relacionada