Bienvenido,
¿en qué podemos ayudarle?

Códigos de las macros de Word

Info

Esta función se encuentra solo disponible en el plan ilimitado.

 

Ejemplo 1: Código para la creación automática de notas a pie de página

1. Cómo funciona la macro:

En LAWLIFT, las notas al pie de página actualmente solo se pueden implementar de forma limitada. Con esta macro puede convertir automáticamente las notas al pie de página presentes en el cuerpo del texto en las posiciones de texto pertinentes en notas a pie de página. Los números de las notas al pie se asignan automáticamente y se refieren a los cuerpos de texto relevantes. Están vinculados dentro de Word con un clic en la nota al pie correspondiente para que el usuario pueda saltar de un lado a otro.
El comienzo de una nota al pie está marcado por los caracteres "{FN:", el final por el carácter "}". Ambos deben utilizarse en texto continuo sin comillas.

Ejemplo:

Lorum voluptua.{FN:ICC-01/09-02/11; emphasis} At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.{FN:ICC-01/09-02/11; emphasis} 

Sugerencia

No debe haber un espacio entre la nota al pie y la palabra u oración a la que se hace referencia; de lo contrario, este espacio permanecerá con el número de la nota al pie posterior y la oración o palabra a la que se hace referencia.

 

Al final, la macro solicita la ubicación del nuevo archivo de Word.

2. Plantillas de formato utilizadas

Se utilizan los estilos estándar de Word. Para desviar los cambios en la presentación de la nota al pie, esta es la plantilla de formato "Texto de la nota al pie". Para una adaptación individual del número de nota al pie, se debe adaptar la plantilla de formato "Caracteres de nota al pie" en el diseño avanzado.

3. Ejemplo de código

Hay muchas formas diferentes de programar una macro de este tipo. No dude en ponerse en contacto con nuestro servicio de asistencia. A continuación, se muestra un ejemplo de una macro:

Sub AutoOpen() 

Dim OpenStrg As String 
Dim CloseStrg As String 
Dim myRange As Range 
Dim StartPos As Long 
Dim EndPos As Long 

OpenStrg = "{FN:" 
CloseStrg = "}" 

StartPos = InStr(1, ActiveDocument.Range.Text, OpenStrg, vbTextCompare) - 1 

Do Until StartPos = -1 
	Set myRange = ActiveDocument.Range 
	EndPos = InStr(StartPos, ActiveDocument.Range.Text, CloseStrg, vbTextCompare)
	myRange.SetRange Start:=StartPos, End:=EndPos 

	ActiveDocument.Footnotes.Add Range:=myRange, Text:=Mid(myRange.Text, Len(OpenStrg) + 1 Len(myRange.Text) - Len(CloseStrg) - Len(OpenStrg)) 

	myRange.Text = "" 
	StartPos = InStr(StartPos, ActiveDocument.Range.Text, OpenStrg,vbTextCompare) - 1 

Loop 
	
End Sub

Información

Existen restricciones en el funcionamiento de la macro si el documento contiene campos de función (por ejemplo, tablas de contenido) o URL en las que se puede hacer clic (":: url"). A continuación se muestra una alternativa a esto.

 

4. Ejemplo de código para documentos con campos de función o URL en las que se puede hacer clic

Si desea que su documento contenga campos de función como una tabla de contenido o enlaces en los que se puede hacer clic (":: url") además de notas al pie, es necesario utilizar una macro adaptada adecuadamente. A continuación, le proporcionamos un código de muestra:
Sub AutoOpen()

Dim OpenStrg As String
Dim CloseStrg As String
Dim myRange As Range
Dim myPara As Paragraph
Dim StartPos As Long
Dim EndPos As Long

OpenStrg = "{FN:"
CloseStrg = "}"

For Each myPara In ActiveDocument.Paragraphs
StartPos = InStr(1, myPara.Range.Text, OpenStrg, vbTextCompare) - 1
Do Until StartPos = -1
Set myRange = myPara.Range
EndPos = InStr(StartPos, myPara.Range, CloseStrg, vbTextCompare)
myRange.SetRange Start:=myRange.Start + StartPos, End:=myRange.Start + EndPos
ActiveDocument.Footnotes.Add Range:=myRange, Text:=Mid(myRange.Text, Len(OpenStrg) + 1, Len(myRange.Text) - Len(CloseStrg) - Len(OpenStrg))
myRange.Text = ""
StartPos = InStr(StartPos, myPara.Range, OpenStrg, vbTextCompare) - 1
Loop

Next

End Sub

Información

Dado que la macro busca cada párrafo individualmente y encuentra y crea notas al pie, es importante que siempre haya solo notas al pie, campos de función o hipervínculos (":: url") en un párrafo. Si este no es el caso, pueden ocurrir problemas de visualización. Además, se debe tener cuidado de que la marcación de una nota al pie "{FN: ...} esté siempre dentro de un párrafo y no en varios párrafos.

 

5. Código para la preparación de notas al pie para importar

Si quiere importar un texto que contiene notas al pie y quiere que se visualicen como tal nuevamente al exportar, puede también utilizar una macro para esto. La siguiente macro convierte sus notas al pie en el formato "{FN: ...}  descripto anteriormente. De esta manera, puede preparar textos extensivos con notas pie apropiadamente.  

Sub Re_FN_UPdated_3()
    Dim FtNt As Footnote
    Dim FNTxt
    
    For Each FtNt In ActiveDocument.Footnotes
        With FtNt.Reference
        .Font.Superscript = False
            FNTxt = FtNt.Range.Text
            If Asc(Left(FNTxt, 1)) = "2" Or Asc(Left(FNTxt, 1)) = "9" Then
                FNTxt = Right(FNTxt, Len(FNTxt) - 1)
                If Asc(Left(FNTxt, 1)) = "9" Then
                    FNTxt = Right(FNTxt, Len(FNTxt) - 1)
                    .Text = "{FN:" & FNTxt & "}"
            
                Else
                    .Text = "{FN:" & FNTxt & "}"
                End If
            Else
                .Text = "{FN:" & FtNt.Range.Text & "}"
            End If
            
        End With
    Next


End Sub

Para volver a convertir las expresiones en notas al pie para exportar, puede utilizar la primera macro nuevamente.


Ejemplo 2: Código para la creación automática de casillas de verificación, campos de texto y protección contra escritura.

1. Cómo funciona la macro:

Las casillas de verificación y los campos de texto deben estar marcados con un carácter en LAWLIFT en los puntos donde se incluirán en el texto.
Los campos marcados con {□} se convierten automáticamente en campos de casilla de verificación "reales". Los campos marcados con {...} se convertirán automáticamente en campos de texto "reales". El archivo pasa a ser de solo lectura, excepto por los campos de las casillas de verificación y los campos de texto; los campos permanecen rellenables o se puede hacer clic en ellos. Al final, el archivo se convierte de .docm a .docx (sin macro).

Ejemplo: 

{□} Opción 1
{□} Opción 2
Nombre: {...}
Dirección: {...}
 

Atención

Cuando se ejecuta la macro, convierte automáticamente el archivo .docm en un archivo .docx y lo guarda en la misma carpeta donde se guardó el archivo .docm.

 
Importante: La contraseña para la protección de documentos es actualmente "1234" y se puede cambiar al principio del código.

Información

Si desea que la macro se ejecute automáticamente la primera vez que la abra, reemplace el nombre "CreateContentControls" por "AutoOpen".

 

2. Ejemplo de código

Hay muchas formas diferentes de programar una macro de este tipo. No dude en ponerse en contacto con nuestro servicio de asistencia. A continuación se muestra un ejemplo de una macro.

Sugerencia

Si desea que la macro se ejecute automáticamente la primera vez que abra el archivo de Word generado, reemplace el nombre "CreateContentControls" en la primera línea con "AutoOpen".

 
Sub CreateContentControls() 

Dim CheckboxStrg As String 
Dim TextboxStrg As String 
Dim myRange As Range 
Dim Testrange As Range 
Dim StartPos As Long 
Dim EndPos As Long 
Dim Password As String 
Dim Deletepath As String 
Password = "1234" 
CheckboxStrg = "{" & ChrW(&H25A1) & "}" 
TextboxStrg = "{...}" 
Offset = 0 
StartPos = InStr(1, ActiveDocument.Range.Text, CheckboxStrg, vbTextCompare) - 1 

Do Until StartPos = -1 

Set myRange = ActiveDocument.Range 
Set Testrange = ActiveDocument.Range 
Testrange.SetRange Start:=1, End:=StartPos 
Offset = Testrange.ContentControls.Count * 2 
EndPos = StartPos + Len(CheckboxStrg) 
myRange.SetRange Start:=StartPos + Offset, End:=EndPos + Offset 
myRange.Select 
myRange.Text = "" 
myRange.ContentControls.Add (wdContentControlCheckBox) 
StartPos = InStr(StartPos, ActiveDocument.Range.Text, CheckboxStrg, vbTextCompare) - 1 
Loop 

StartPos = InStr(1, ActiveDocument.Range.Text, TextboxStrg, vbTextCompare) - 1 

Do Until StartPos = -1 
Set myRange = ActiveDocument.Range 
Set Testrange = ActiveDocument.Range 
Testrange.SetRange Start:=1, End:=StartPos 
Offset = Testrange.ContentControls.Count * 2 
EndPos = StartPos + Len(TextboxStrg) 
myRange.SetRange Start:=StartPos + Offset, End:=EndPos + Offset 
myRange.Select 
myRange.Text = "" 
myRange.ContentControls.Add (wdContentControlText) 
StartPos = InStr(StartPos, ActiveDocument.Range.Text, TextboxStrg, vbTextCompare) - 1 
Loop 

Application.ActiveDocument.Protect wdAllowOnlyFormFields, Password:=Password 
Deletepath = ActiveDocument.FullName 
ActiveDocument.SaveAs2 FileName:=Left(ActiveDocument.FullName, Len(ActiveDocument.FullName) - 5) & ".docx", FileFormat:=wdFormatDocumentDefault 

Documents.Open (Left(ActiveDocument.FullName, Len(ActiveDocument.FullName) - 5) & ".docx") Kill (Deletepath) 

End Sub
Puede descargar un archivo de muestra aquí.

Atención

Cuando ejecuta la macro, el .docm en la misma carpeta se convierte automáticamente en un archivo .docx.

 

Información

Existen restricciones en el funcionamiento de la macro si el documento contiene campos de función (por ejemplo, tablas de contenido) o URL en las que se puede hacer clic (":: url"). Además, pueden surgir dificultades si en las tablas se utilizan las expresiones "{□}" o "{...}" mencionadas anteriormente. A continuación se muestra una alternativa a esto.

 

 

Ejemplo 3: Código para documentos con campos de función, tablas o URL en las que se puede hacer clic.

Si su documento debe contener otros campos de función además de notas al pie, como tablas de contenido o enlaces en los que se puede hacer clic (":: url"), o si las expresiones "{□}" o "{...}" deben ser colocadas en tablas, es necesario utilizar una macro adecuadamente adaptada. A continuación, le proporcionamos un código de muestra:

 Sub CreateContentControls()
 Dim CheckboxStrg As String
 Dim TextboxStrg As String
 Dim myRange As Range
 Dim Testrange As Range
 Dim myPara As Paragraph
 Dim StartPos As Long
 Dim EndPos As Long
 Dim Password As String
 Dim Deletepath As String
 Password = "1234"
 CheckboxStrg = "{" & ChrW(&H25A1) & "}"
 TextboxStrg = "{...}"
 Offset = 0
 For Each myPara In ActiveDocument.Paragraphs
 StartPos = InStr(1, myPara.Range.Text, CheckboxStrg, vbTextCompare) - 1
 Do Until StartPos = -1
 Set myRange = myPara.Range
 Set Testrange = myPara.Range
 Testrange.SetRange Start:=myRange.Start, End:=myRange.Start + StartPos + 1
 Offset = Testrange.ContentControls.Count * 2
 EndPos = StartPos + Len(CheckboxStrg)
 myRange.SetRange Start:=myRange.Start + StartPos + Offset, End:=myRange.Start + EndPos + Offset
 myRange.Select
 myRange.Text = ""
 myRange.ContentControls.Add (wdContentControlCheckBox)
 StartPos = InStr(StartPos + 1, myPara.Range.Text, CheckboxStrg, vbTextCompare) - 1
 Loop
 Next
 For Each myPara In ActiveDocument.Paragraphs
 StartPos = InStr(1, myPara.Range.Text, TextboxStrg, vbTextCompare) - 1
 Do Until StartPos = -1
 Set myRange = myPara.Range
 Set Testrange = myPara.Range
 Testrange.SetRange Start:=myRange.Start, End:=myRange.Start + StartPos + 1
 Offset = Testrange.ContentControls.Count * 2
 EndPos = StartPos + Len(TextboxStrg)
 myRange.SetRange Start:=myRange.Start + StartPos + Offset, End:=myRange.Start + EndPos + Offset
 myRange.Select
 myRange.Text = ""
 myRange.ContentControls.Add (wdContentControlText)
 StartPos = InStr(StartPos + 1, myPara.Range.Text, TextboxStrg, vbTextCompare) - 1
 Loop
 Next
 Application.ActiveDocument.Protect wdAllowOnlyFormFields, Password:=Password
 Deletepath = ActiveDocument.FullName
 ActiveDocument.SaveAs2 FileName:=Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 5) & ".docx", FileFormat:=wdFormatDocumentDefault
 Documents.Open (Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 5) & ".docx")
 Kill (Deletepath)
End Sub

Atención

Dado que la macro busca las expresiones en cada párrafo individualmente, es importante que solo haya expresiones, campos de función o hipervínculos (":: url") en un párrafo. Si este no es el caso, pueden ocurrir problemas de visualización. Además, se debe tener cuidado de que la marcación de las casillas de verificación y los campos de texto con las expresiones "{□}" o "{...}" siempre ocurra dentro de un párrafo y no en varios párrafos.

 


Ejemplo 4: Código para formateo automático de notas al pie

1. Cómo funciona la macro:

El objetivo es implementar automáticamente el formato que se muestra a continuación:

El problema es que Word no permite el control automático diferente de los textos de las notas al pie y los caracteres de las notas a través de las plantillas de formato. Solo la segunda línea se puede controlar mediante la sangría francesa de la plantilla de formato de texto de nota al pie. Por lo tanto, se debe establecer una tabulación y la primera línea siempre se debe sangrar manualmente para cada nota al pie con la tecla de tabulación detrás del número de la nota al pie o del carácter de la nota al pie. Esto se puede automatizar con el siguiente fragmento de código. A continuación, la sangría se establece en 1,5 en la primera y segunda línea.

Información

Dado que la macro automatiza los pasos manuales para cada nota al pie, puede llevar algún tiempo si hay muchas notas al pie. En nuestra experiencia, se necesitan unos 40 segundos para unas 70 notas al pie. Desafortunadamente, esto no se puede acelerar dentro de Word. Si desea que la macro se ejecute automáticamente la primera vez que la abra, reemplace el nombre "FormateFootnotes" por "AutoOpen".

 

Atención

Cuando se ejecuta la macro, convierte el archivo .docm en un archivo .docx y lo guarda en la ubicación que especifique.

 

2. Ejemplo de código

Hay muchas formas diferentes de programar una macro de este tipo. No dude en ponerse en contacto con nuestro servicio de asistencia. A continuación, se muestra un ejemplo de una macro:

Sub FormateFootnotes() 
For i = 1 To ActiveDocument.Footnotes.Count 
ActiveDocument.Footnotes(i).Range.Select 
With Selection 
.Collapse Direction:=wdCollapseStart 
.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend 
.TypeText Text:=vbTab 
.ParagraphFormat.FirstLineIndent = CentimetersToPoints(-1.5) 
End With 
Next 
Application.FileDialog(msoFileDialogSaveAs).Show 
End Sub

 

 

Ejemplo 5: Código para insertar tabulaciones dentro de un párrafo

1. Cómo funciona la macro:

La alineación del texto en Lawlift generalmente se realiza mediante el formato de los párrafos individuales. Para sangrar áreas de texto dentro de un párrafo, está disponible la siguiente macro.

Aquí se explica en detalle cómo insertar el código y establecer las tabulaciones.

2. Ejemplo de código:

Hay muchas formas diferentes de programar una macro de este tipo. No dude en ponerse en contacto con nuestro servicio de asistencia. A continuación, se muestra un ejemplo de una macro:

Sub AutoOpen()
'
' Tabstopp Makro
'
'
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="{Tab}"
With Selection.Find
 .ClearFormatting
 .Text = "{Tab}"
 .Replacement.ClearFormatting
 .Replacement.Text = "^t"
 .Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
End Sub

 

Ejemplo 6: Código para marcar marcadores de posición vacíos

1. Cómo funciona la macro:

Esta macro le ofrece la función de resaltar marcadores de posición vacíos en su documento de Word en color. Después de insertar el código, los marcadores de posición que no se han completado se resaltan automáticamente en amarillo cuando se abre el documento de Word.

2. Ejemplo de código:

Hay muchas formas diferentes de programar una macro de este tipo. No dude en ponerse en contacto con nuestro servicio de asistencia. A continuación, se muestra un ejemplo de una macro:

Sub AutoOpen()
'
' Makro1 Makro
'
'
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="[...]"
Options.DefaultHighlightColorIndex = wdYellow
 myRange.Find.ClearFormatting
 myRange.Find.Replacement.ClearFormatting
 With myRange.Find
 .Replacement.Highlight = True
 .Forward = True
 .Wrap = wdFindAsk
 .Format = True
 .MatchCase = False
 .MatchWholeWord = False
 .MatchWildcards = False
 .MatchSoundsLike = False
 .MatchAllWordForms = False
 End With
 myRange.Find.Execute Replace:=wdReplaceAll
End Sub

 

Ejemplo 7: Preparar enlaces formateados para la importación de LAWLIFT

1. Cómo funciona la macro:

LAWLIFT le ofrece la posibilidad de formatear una URL insertada como un hipervínculo con un título utilizando la función "título (...)". Le hemos mostrado aquí exactamente cómo funciona esto.

Sin embargo, si tiene un documento de Word por adelantado que se va a automatizar y ya contiene dichos enlaces formateados, no puede simplemente copiar el texto en LAWLIFT. Solo se copiarían los títulos, pero no las URL.

Una macro puede ayudar aquí, que convierte todos los enlaces formateados en el documento de Word en la forma ":: url [www.beispielurl.detitle (ejemplo)]" legible por LAWLIFT. Posteriormente, los enlaces formateados pueden simplemente copiarse del archivo de Word a la plantilla LAWLIFT. LAWLIFT reconoce las expresiones y las inserta como URL en las que se puede hacer clic con el título dado, como se muestra en nuestra ayuda.

Los enlaces sin formato también se pueden copiar simplemente en la plantilla de LAWLIFT sin utilizar esta macro y LAWLIFT los reconoce como tales.

2. Ejemplo de código:

Hay muchas formas diferentes de programar una macro. No dude en ponerse en contacto con nuestro servicio de asistencia.

A continuación, se muestra un ejemplo de una macro que prepara el archivo fuente para importarlo a LAWLIFT:

Sub Format_Hyperlinks()
 Dim Link As Hyperlink
 Dim HTP1, HTP2 As Integer
HTP1 = 0
HTP2 = 0
 'checking document if it contain URLs
 If ActiveDocument.Hyperlinks.Count > 0 Then
 For Each Link In ActiveDocument.Hyperlinks '------------------------
 If Link.Address <> "" Then
 'links vs bookmarks
 If InStr(Link.Address, "http") > 0 Then '------------
 Link.Range.Select
 'checking for address only links
 If Link.TextToDisplay = Link.Address Then
 Selection.TypeText "::url[" & Link.Address & "]"
 HTP1 = HTP1 + 1
 Else 'if link have a text to display
 Selection.TypeText "::url[" & Link.Address & " Title(" & Link.TextToDisplay & ")]"
 HTP2 = HTP2 + 1
 End If
 End If '------------
 End If
 Next Link '------------------------
 'statistic message
 mSg = "There are " & HTP1 & " link(s) without Title." & Chr(13) & "There are " & HTP2 & " link(s) with Title." & Chr(13) & "Total " & HTP1 + HTP2 & " link(s) formatted so far."
 MsgBox mSg, vbOKOnly + vbInformation, "Statistics"
 Else
 'if not links were found in document
 MsgBox "There are no hyperlinks in this document."
 End If
End Sub
Sub Format_Hyperlinks_Updated()
'------------------------------------------------'
'--------- Dealing Hyperlinks in Body -----------'
'------------------------------------------------'
 Dim Link As Hyperlink
 Dim HTP1, HTP2 As Integer
HTP1 = 0
HTP2 = 0
BD = 0
FT = 0
 'checking document if it contain URLs
On Error Resume Next ' Handling unknown error for this time only
 If ActiveDocument.Hyperlinks.Count > 0 Then
 For Each Link In ActiveDocument.Hyperlinks '------------------------
 'links vs bookmarks
 If InStr(Link.Address, "http") > 0 Then '------------
 Link.Range.Select
 'checking for address only links
 If Link.TextToDisplay = Link.Address Then
 Selection.TypeText "::url[" & Link.Address & "]"
 HTP1 = HTP1 + 1
 Else 'if link have a text to display
 Selection.TypeText "::url[" & Link.Address & " Title(" & Link.TextToDisplay & ")]"
 HTP2 = HTP2 + 1
 End If
 End If
 BD = BD + 1
 Next Link '------------------------
 Else
 'if not links were found in document
 MsgBox "There are no hyperlinks in the body of document."
 End If
'------------------------------------------------'
'------- Dealing Hyperlinks in Footnotes --------'
'------------------------------------------------'
Dim h As Hyperlink
With ActiveDocument
If .Footnotes.Count >= 1 Then
 With .StoryRanges(wdFootnotesStory)
 For Each h In .Hyperlinks
 If InStr(h.Address, "http") > 0 Then
 h.Range.Select
 'checking for address only links
 If h.TextToDisplay = h.Address Then
 Selection.TypeText "::url[" & h.Address & "]"
 HTP1 = HTP1 + 1
 Else 'if link have a text to display
 Selection.TypeText "::url[" & h.Address & " Title(" & h.TextToDisplay & ")]"
 HTP2 = HTP2 + 1
 End If
 End If
 FT = FT + 1
 Next h
 End With
End If
End With
'------ Statistic Message -------'
 mSg = "Number of Hyperlink(s) in:" & Chr(13) & "Main Document =" & BD & Chr(13) & "Footnote =" & FT & Chr(13) & Chr(13) & "There are " & HTP1 & " link(s) without Title." & Chr(13) & "There are " & HTP2 & " link(s) with Title." & Chr(13) & Chr(13) & "Total " & HTP1 + HTP2 & " link(s) formatted so far."
 MsgBox mSg, vbOKOnly + vbInformation, "Statistics"
End Sub

Información

Ejecute la macro solo una vez; de lo contrario, las funciones se anidarán unas dentro de otras.

 



Ejemplo 8: Código para establecer una numeración dentro de tablas

1. Cómo funciona la macro:

La numeración de filas en una tabla funciona básicamente como la numeración habitual en Lawlift, es decir, a través de niveles. Para identificar estos niveles dentro de la tabla, se utiliza la expresión "[#]". Aquí "[#]" define el 1er nivel, "[##]" el 2do nivel, "[###]" el 3er nivel y así sucesivamente. Se pueden utilizar los nueve niveles proporcionados por Word. La numeración que finalmente se inserta debe determinarse de antemano en una plantilla de formato de lista dentro del membrete. Además, esta plantilla de formato de lista debe almacenarse en el código de macro. La denominación de la plantilla de formato de lista es de especial importancia, ya que el nombre se utiliza en la macro. En nuestro caso, la lista se denominó "A. / 1 . / 1.1.". Sin embargo, también puede dar a la lista un nombre diferente y adaptar el código de la macro en consecuencia. 

Si tiene alguna pregunta al respecto, comuníquese con nuestro equipo de soporte en support@lawlift.com.

2. Ejemplo de código:

A continuación encontrará un código de ejemplo que aplica la numeración definida en la plantilla de formato de lista a los párrafos dentro de una tabla. Estos párrafos deben marcarse primero con [#], [##], etc. en la plantilla LAWLIFT. En cuanto se ejecuta la macro, se añade la numeración en los lugares correspondientes. Tenga en cuenta que aquí también se tiene en cuenta la numeración fuera de la tabla.

En sentido estricto, el ejemplo de código consta de dos subrutinas diferentes. La primera determina que todos los niveles de numeración se alineen a la izquierda. Esto garantiza una presentación clara dentro de la tabla, donde a menudo no hay mucho espacio para sangrías. La segunda subrutina convierte todos los párrafos marcados con los comandos [#] en párrafos numerados y se basa en la numeración definida previamente en la plantilla de formato de lista "A. / 1 . / 1.1.". 

Información

Debe ejecutar la macro manualmente después de exportar el archivo desde Lawlift. Si desea ejecutarlo automáticamente, cambie el nombre de la macro a "AutoOpen". Al hacer esto, la macro se ejecuta automáticamente cuando se abre el archivo de Word.

 

Si hay una gran cantidad de expresiones en el documento, la ejecución puede tardar unos segundos.

Sub Level_setting_A_1_11()

Dim X As Integer
Const newNumPos As Long = 0
Const newTextPos As Long = 0

With ActiveDocument.Styles("Liste3").ListTemplate
    For X = 1 To 9
        .ListLevels(X).TextPosition = newTextPos
        .ListLevels(X).NumberPosition = newNumPos
    Next
End With


End Sub

Sub Nummerierung_Numeric_with_Zero_indentation()

Dim Level As Integer
With ActiveDocument.Range.Find
    .Text = "\[#*\]"
    .MatchWildcards = True

Do While .Execute
If .Parent.Information(wdWithInTable) Then
    Level = Len(.Parent.Text) - 2
    .Parent.Style = ActiveDocument.Styles("Liste3")
    .Parent.ListFormat.ListLevelNumber = Level
    
    If Not Level = 1 Then
        .Parent.ListFormat.ListTemplate.ListLevels(Level).TextPosition = 0
        .Parent.ListFormat.ListTemplate.ListLevels(Level).NumberPosition = 0
    End If
    
    .Parent.Delete

End If
Loop

.MatchWildcards = False
End With

End Sub

 

 

Ejemplo 9: Código para generar numeración variable de adjuntos

1. Cómo funciona la macro:

Este ejemplo de código le ofrece la posibilidad de numerar los archivos adjuntos de forma variable y establecer referencias interactivas en el texto. Para ello, utilice la expresión "{#VN}", que se coloca en el lugar de la numeración respectiva, seguida del nombre individual del adjunto. Para las referencias en el texto, se utiliza la expresión "(... Attachment {#VN}: Nombre_del_adjunto)".

2. Ejemplo de código:

Hay algunas características especiales que se deben tener en cuenta al utilizar la macro. Para garantizar un funcionamiento adecuado, la plantilla debe contener el título "Attachments". Además, los archivos adjuntos deben mostrarse en una lista numerada. A continuación, encontrará una ilustración de cómo funciona la macro:

 

Sub Numbering_N_Bookmarks_Updated_3()


'ADT = Mid(AD.Text, 24, Len(AD.Text))
'Selection.Find.Execute Trim(Left(Mid(AD.Text, 5, Len(AD.Text)), Len(Mid(AD.Text, 5, Len(AD.Text))) - 1)), Forward:=False


    Dim BMT, ADT, L1 As String
    Dim H As Integer
    Dim AD, MyRange As Range: Set MyRange = ActiveDocument.Range


    Selection.EndKey wdStory
    Selection.Find.Execute "Attachements:", Forward:=False


    MyRange.SetRange Start:=Selection.End, End:=MyRange.End


    With MyRange.Find
        .Text = "{#VN}:"
        Do While .Execute
        L1 = MyRange.ListFormat.ListString
        If Right(L1, 1) = "." Then L1 = Left(L1, Len(L1) - 1)
        
        BMT = MyRange.Paragraphs(1).Range.Text
        BMT = Left(BMT, Len(BMT) - 1)
        MyRange.Text = L1 & ":"
        
        '===  Bookmark  ==='
        ActiveDocument.Bookmarks.Add Range:=MyRange.Paragraphs(1).Range, _
                  Name:="BByB" & L1
        '=================='
        Set AD = ActiveDocument.Range
        AD.SetRange Start:=AD.Start, End:=MyRange.Start


            With AD.Find
                .Text = "\(?*\)"
                .MatchWildcards = True
                .Forward = False
                Do While .Execute
                    AD.MoveEnd wdCharacter, -1
                    AD.MoveStart wdCharacter, 1
                        If InStr(.Parent.Text, BMT) Then
                        
                            AD.Select
                            Selection.Find.Execute "{#VN}"
                            Selection.TypeText L1
                            AD.Select
                            H = H + 1
                            '===  Hyperlink  ===='
                        ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _
                        SubAddress:="BByB" & L1
                            '===================='
                        
                        Application.StatusBar = L1 & " Reference is in process!!!..."
                        
                        End If
                .Parent.Collapse wdCollapseEnd
                Loop
            End With
                
        .Parent.Collapse wdCollapseEnd
        Loop
    End With
    
Application.StatusBar = L1 & " Reference are linked converted to " & H & " Hyperlinks. 100% Completed!!!"


End Sub

IMPORTANTE: Si desea que la macro se ejecute automáticamente cuando abra el archivo de Word, puede llamarlo "AutoOpen". Para obtener ayuda, comuníquese con nuestro soporte (support@lawlift.com).

 

Descargo de responsabilidad

Puede ser que el requisito de seguridad de la información no permita el uso de macros externas. En este caso, debe solicitar internamente a la oficina responsable de usted la aprobación del código de muestra. Puede copiar los ejemplos de código aquí.

Was this article helpful?

¿No encuentras lo que buscas?

Nuestro equipo premiado de atención al cliente está aquí para usted

Ponte en contacto con el soporte