|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
Sub GenerarBorradorAutomatico() Dim tema As String Dim autor As String Dim i As Integer Dim numApartados As Integer Dim doc As Document Dim rng As Range ' Pedir datos al usuario tema = InputBox("Escribe el tema del documento:", "Tema del documento") If tema = "" Then Exit Sub autor = InputBox("Escribe tu nombre o autor:", "Autor") If autor = "" Then autor = "Autor no indicado" numApartados = Val(InputBox("¿Cuántos apartados quieres crear? (entre 2 y 8)", "Número de apartados", "4")) If numApartados < 2 Then numApartados = 2 If numApartados > 8 Then numApartados = 8 Set doc = ActiveDocument Set rng = Selection.Range ' Título rng.InsertAfter "BORRADOR AUTOMÁTICO: " & UCase(tema) & vbCrLf rng.Paragraphs.Last.Range.Style = wdStyleTitle ' Subtítulo rng.InsertAfter "Documento generado automáticamente en Word" & vbCrLf rng.Paragraphs.Last.Range.Style = wdStyleSubtitle ' Fecha y autor rng.InsertAfter "Fecha: " & Format(Date, "dd/mm/yyyy") & vbCrLf rng.InsertAfter "Autor: " & autor & vbCrLf & vbCrLf ' Introducción rng.InsertAfter "Introducción" & vbCrLf rng.Paragraphs.Last.Range.Style = wdStyleHeading1 rng.InsertAfter "Este documento se ha creado de forma automática a partir del tema indicado: """ & tema & """." & _ " Su objetivo es ofrecer una base inicial de trabajo sobre la que desarrollar contenido más amplio, " & _ " ordenar ideas y acelerar la redacción de un primer borrador. A partir de aquí, cada apartado puede " & _ " completarse con ejemplos, referencias, casos prácticos o conclusiones más detalladas." & vbCrLf & vbCrLf ' Crear apartados For i = 1 To numApartados rng.InsertAfter "Apartado " & i & ": " & ObtenerTituloApartado(i, tema) & vbCrLf rng.Paragraphs.Last.Range.Style = wdStyleHeading1 rng.InsertAfter "En este apartado se desarrolla una parte esencial relacionada con """ & tema & """." & _ " Puede utilizarse como base para ampliar conceptos, incorporar definiciones, explicar procesos " & _ " o presentar ejemplos concretos. La estructura automática permite empezar a trabajar con una " & _ " plantilla ya organizada y lista para editar." & vbCrLf rng.InsertAfter "Ideas a desarrollar:" & vbCrLf rng.InsertAfter "• Definición o enfoque principal del apartado." & vbCrLf rng.InsertAfter "• Ejemplo práctico o caso de uso relacionado." & vbCrLf rng.InsertAfter "• Posibles ventajas, límites o aspectos a revisar." & vbCrLf & vbCrLf Next i ' Conclusión rng.InsertAfter "Conclusión" & vbCrLf rng.Paragraphs.Last.Range.Style = wdStyleHeading1 rng.InsertAfter "El borrador generado ofrece una estructura inicial clara y editable sobre """ & tema & """." & _ " Aunque se trata de un texto automático, sirve como punto de partida para ahorrar tiempo, " & _ " organizar el contenido y comenzar a redactar con una base sólida. El siguiente paso consiste " & _ " en personalizar cada sección con información específica." & vbCrLf & vbCrLf ' Mensaje final MsgBox "Documento generado correctamente.", vbInformation, "Macro completada" End Sub Function ObtenerTituloApartado(numero As Integer, tema As String) As String Select Case numero Case 1 ObtenerTituloApartado = "Conceptos básicos sobre " & tema Case 2 ObtenerTituloApartado = "Elementos principales" Case 3 ObtenerTituloApartado = "Aplicaciones prácticas" Case 4 ObtenerTituloApartado = "Ventajas y limitaciones" Case 5 ObtenerTituloApartado = "Recomendaciones" Case 6 ObtenerTituloApartado = "Casos de uso" Case 7 ObtenerTituloApartado = "Perspectivas futuras" Case 8 ObtenerTituloApartado = "Síntesis final" Case Else ObtenerTituloApartado = "Desarrollo" End Select End Function |

