¿Cómo puedo eliminar la numeración en Word mediante macros?

Re-saludos, nuevamente...
Habiendo solucionado la primera duda, tengo un par de asuntillos más que quisiera resolver...
Me gustaría eliminar con macros en word la numeración que me queda al comienzo de las líneas ( tengo dos clases de comienzo de líneas, con N y sin N )
Ej:
1 BEGIN PGM 44 MM
2 ; conjunto ...
3 L X0 Y0 Z1000 R0 F MAX
4 L Z100 F MAX M13
5 END PGM 44 MM
Debería quedar
BEGIN PGM 44 MM
; conjunto ...
L X0 Y0 Z1000 R0 F MAX
L Z100 F MAX M13
END PGM 44 MM
y 2º ejemplo...
N1 T1 T0 M6
N2 (CONJUNTO...)
N3 G0 G40 X0 Y0 Z1000
N4 G0 Z100 M13
Debería quedar:
T1 T0 M6
(CONJUNTO...)
G0 G40 X0 Y0 Z1000
G0 Z100 M13
No se si con una macro o con dos...
Y para rizar el rizo, quisiera poder salvar el fichero modificado con el mismo nombre, pero distinta extensión ( aunque creo que esto será más complicado)
Si pudieras hacer algo te lo agradecería... Marcas

1 Respuesta

Respuesta
1
Me parece que te estás complicando demasiado la vida.
Si lo que quieres hacer ahora lo tienes que hacer muchas veces *puede* que valga la pena hacer una macro, pero si no es así lo puedes hacer directamente con el ratón, lo cual es más rápido.
Me explico: con Word puedes elegir texto en columnas presionando la tecla 'Alt' y manteniéndola presionada y a continuación marcando un área con el ratón. Una vez que este seleccionada dicha área (en tu caso, la columna de números o de N's y números) pulsas 'Supr' o 'Ctrl-X' y ya está!
En cuanto a lo de guardar el fichero con otra extensión, aquí tienes la macro:
Sub GuardarExtension()
'
' Macro grabada el 19/06/02 por Simón Hernández Dalmau
'
Dim Nombre As String
Nombre = InputBox("Introduzca nombre completo (con extensión) del documento:", "Guardar con otra extensión")
ActiveDocument.SaveAs FileName:=Nombre, FileFormat:=wdFormatDocument, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
End Sub
El tema es que lo utilizo bastante a menudo (relativamente)y algunos textos llegan a tener hasta 2000 lineas, por lo cual me interesaría tener la macro para facilitar la labor...
si es que se puede hacer... marcas
Me parece que te estoy mal acostumbrando, y así no vas a aprender a hacerte tus propias macros. Pon algo más de tu parte :)
Bueno, aquí tienes la macro que necesitas:
Sub QuitaCabecera()
'
' Macro creada el 20/06/02 por Simón Hernández Dalmau
'
Dim Aux1, Aux2, Letra As String, i As Integer, Quitar As Boolean
' Empezamos con texto vacío y suponemos principio de línea
Aux1 = ""
i = 1
Quitar = True
' Bucle por cada elemento (palabra)
While i <= Selection.Words.Count
' Recupera la palabra
Aux2 = Selection.Words(i).Text
' Se queda con la primera letra, si es una "N" con la segunda
Letra = Left(Aux2, 1)
If Letra = "N" Then Letra = Mid(Aux2, 2, 1)
' Comprueba si es un principio de línea a quitar (que tenga números)
If Quitar And Letra >= "0" And Letra <= "9" Then
' El siguiente elemento no habrá que quitarlo
Quitar = False
Else
' Comprueba si es fin de línea, ya que el siguiente puede que haya que quitarlo
If Asc(Right(Aux2, 1)) = 13 Then Quitar = True
' Añade un elemento que no hay que quitar
Aux1 = Aux1 + Selection.Words(i)
End If
i = i + 1
Wend
' Sustituye el texto seleccionado
Selection.Text = Aux1
End Sub
Verás que no uso nada que no hubiera usado en las anteriores macros que te he hecho, así que creo que podías haberlo hecho tú. Te lo digo principalmente porque así no dependes de mí o de otro experto para solucionar estas dudas, aunque entiendo que si no sabes programar, puede ser bastante lioso meterse con macros de este tipo.
En cualquier caso, puedes seguir contando conmigo y aquí me tienes para lo que necesites.
Qué más quisiera que dominar el tema, pero... ésto me sobrepasa. Las macros las utilizo para tratar programas de control numérico, que no me van tan mal, pero ésto me va grande. Y eso que lo intento... Ayer por la tarde creía que ésto iba bien pero hoy por la mañana al aplicar la macro a un par de programas he tenido algún fallo:
La macro de guardar el documento con otra extensión funciona bien, pero me gustaría que guardara el fichero como formato de texto, no como documento de word, ya que tengo que guardar los programas en formato texto para que me sean válidos. Hasta ahora hemos estado funcionando con un programa bajo dos, llamado Comandante Norton ( no se si te sonará ) que nos daba bastantes facilidades para lo que necesitamos, pero veo que word es más actual... y con éste par de cosillas que vamos preparando creo que nos irá mejor.
El otro tema que me falla es que al aplicar la macro de quitar cabecera, me quita el número de la primera línea pero no de las siguientes. Otra cosa que hace es que si aplico dos veces las macros, me elimina números internos del programa ¿? También he intentado hacer una macro que después de eliminar las cabeceras me vuelva a renumerar todo el programa ( una macro para comienzos con ene, y otra para comienzos sin enes ) pero no lo he conseguido, no se si por el problema de antes o por otra cosa.
Si ves soluciones factibles, te agradecería me ayudaras.
Espero no tener que darte demasiado la "brasa"...
Otra cosa que me gustaría conseguir sería crear backups de todos los programas que tengo a CDRW... ¿conoces algún programa ( a ser posible en castellano ) que me ayudara a hacerlo?
Algo que guarde los programas nuevos o modificados... creo...
Marcas
Vamos a ver:
1º Modificación de la macro GuardarExtension:
Donde pone 'wdFormatDocument' cambialo a 'wdFormatText'
2º Para que la macro de quitar cabeceras funcione las líneas deben estar separadas por retornos de carro ('INTRO' o 'RETURN'), que corresponde a un código ASCII '13'. Si no es así resulta imposible saber dónde termina una línea y comienza la siguiente y la macro no es aplicable.
3º Efectivamente, la macro sólo se puede aplicar una vez, ya que es imposible determinar ejecuciones sucesivas.
4º Probablemente el problema de la renumeración es que no tienes los retornos de carro, con lo que es imposible determinar dónde poner el número de línea.
Si no tienes manera de separar las líneas mediante retornos de carro, me temo que será imposible solucionar los problemas que estás teniendo.
5º Si no te quieres complicar la vida, utiliza la copia de seguridad que trae Windows. En W98SE está en 'Inicio', 'Programas', 'Accesorios', 'Herramientas del sistema', 'Copia de Seguridad'. Si no te aparece tendrás que sacarlo del CD de instalación de Windows. Funciona bastante bien y te permite hacer copias incrementales (de aquello que ha cambiado).
Si necesitas algo más, aquí estoy.
Mil gracias por todo...
Si que tengo el problema de los retornos de carro.
Ya iré estudiando el tema.
Lo de la copia de seguridad me va bien.
Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas