El cambio de absoluta a hipervínculos relativos

August 11

Linda tiene un documento de Word que contiene muchas (1,800+) enlaces a recursos en Internet. Ella necesita para convertir todos los hipervínculos para que ellos no son absolutos a una URL en la Web, pero por lo que apunta a una ubicación relativa en una unidad USB. El nombre del archivo HTML será el mismo en la unidad USB como lo fue en la Web, es sólo la ubicación de ese archivo HTML que está cambiando. Linda se pregunta sobre la mejor manera de hacer la conversión.

La mejor manera es hacer las conversiones utilizando una macro. Cada hipervínculo en el documento se guarda en la colección de hipervínculos que fácilmente se puede acceder a través de VBA. Esto permite que usted camine a través de la colección de hipervínculos, examina las direcciones de cada uno, y luego hacer modificaciones en ellos. He aquí un ejemplo de una macro como:

ConvertHyperlinks Sub ()
Dim sNewBase As String
Dim sFile As String
Dim sNewFile As String
Dim sChanged As String
Dim sNotChanged As String
Dim sTemp As String
Dim J As Integer
Dim h como hipervínculo

sNewBase = "c: \ myplace \"
sChanged = ""
sNotChanged = ""

Para Cada h En ActiveDocument.Hyperlinks
sTemp = h.Address
Si Izquierda (sTemp, 5) = "http:" Entonces
sFile = ""
Para J = Len (sTemp) Para 2 Paso -1
Si Mediados (sTemp, J, 1) = "/" Entonces
sFile = Derecha (sTemp, Len (sTemp) - J)
Salir Para
End If
Siguiente J

Si sFile> "" Entonces,
sNewFile = sNewBase y sFile
h.Address = sNewFile
sChanged = sChanged y sTemp & "(cambiado a" & _
sNewFile & ")" & vbCrLf
Más
sNotChanged = sNotChanged y sTemp y vbCrLf
End If
Más
sNotChanged = sNotChanged y sTemp y vbCrLf
End If
Siguiente h

Documents.Add
Selection.TypeText "Las siguientes hipervínculos se modificaron:" & vbCrLf
Selection.TypeText sChanged y vbCrLf y vbCrLf
Selection.TypeText "Las siguientes hipervínculos no se modificaron:" & vbCrLf
Selection.TypeText sNotChanged y vbCrLf
End Sub

La macro comienza pisando a través de la colección de hipervínculos. Cada dirección se asigna a la variable sTemp, que luego se comprueba para ver si se comienza con "http:". Algunos hipervínculos-por ejemplo, las direcciones de correo electrónico o existente comienzo archivos will not con estos personajes. Si se encuentra una coincidencia, entonces el código de pasos hacia atrás a través de la dirección para encontrar la barra final en esa dirección. Cuando se encuentra, entonces sFile se ajusta a la igualdad de todo lo que después de barra final, lo que significa que será igual al archivo HTML.

Una nota al margen interesante aquí es que cuando se crea un hipervínculo en un documento de Word, Word hace un poco de la elaboración sobre lo que escribe en comparación con lo que realmente está almacenada en el hipervínculo. Por ejemplo, vamos a suponer que usted escribe lo siguiente en un documento:

www.Tips.net

Word reconoce automáticamente que se trata de un sitio web y lo convierte en un hipervínculo. (Suponiendo, claro, que tiene Word configurado para hacer conversiones de URL automáticos). Si nos fijamos en la dirección efectivamente almacenada en el hipervínculo creado, verá lo siguiente:

http://www.Tips.net/

Debido a esta dirección comienza con "http:", la macro se considera que sea algo procesable. Sin embargo, el lazo que los pasos hacia atrás en la dirección de buscar el último carácter de barra, la encontrará en el final. Esto significa que sFile estará vacía porque de este código:

sFile = Derecha (sTemp, Len (sTemp) - J)

La longitud de sTemp y J son exactamente lo mismo para el último carácter de la cadena, por lo sFile termina contiene los caracteres más a la derecha 0, lo que significa que está vacío. La conclusión es que no va a contener un nombre de archivo, por lo que la dirección URL original no se convierte en algo más.

Para hacer el trabajo macro correctamente en su sistema, tendrá que cambiar la cadena sNewBase para contener lo que quieras añade al principio de las direcciones procesados. Tenga en cuenta que tal como está escrita, la cadena predeterminada agrega al principio de un archivo es "c: \ myplace \". Así, "http://www.tips.net/privacy.html" se cambia a "c: \ myplace \ privacy.html". Esta dirección convertida no es, estrictamente, un hipervínculo relativo. Un hipervínculo relativo no tendría el c: \ personajes al principio, por lo que llegaría a ser algo así como "\ myplace \ privacy.html". Una vez más, se puede cambiar el valor de sNewBase a ser lo que quieras para que sus hipervínculos convertidos parecen a usted desea.

No se necesita mucho tiempo para ejecutar la macro; es muy rápido, independientemente del número de hipervínculos están en el documento. Cuando la macro se completa, se crea un nuevo documento en el que se muestran los hipervínculos modificados y los no modificados.

WordTips es su fuente de formación de Microsoft Word rentable. (Microsoft Word es el procesador de textos más popular en el mundo.) Esta punta (12 931) se aplica a Microsoft Word 2007, 2010, y 2013.