Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. Sub gerarpdf()
  2.  
  3. Dim a As Integer
  4.  
  5. Dim teste As String
  6.  
  7. Dim registro As Integer
  8.  
  9. Dim nomeArquivo As String
  10.  
  11. Dim nomeEscola As String
  12.  
  13. Dim f As Integer
  14.  
  15. Dim ate As Integer
  16.  
  17.  
  18. 'Define o primeiro registro da mala direta
  19.  
  20. ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
  21.  
  22. 'Contador de registros
  23.  
  24. a = ActiveDocument.MailMerge.DataSource.RecordCount
  25.  
  26. 'Exporta todos os registros
  27. For registro = 1 To 5
  28.  
  29. 'Atribui o valor de cada registro da coluna nome para a variável nomeArquivo que dará nome ao novo arquivo. Caso queira outro nome, basta colocar o nome da coluna desejada
  30. nomeArquivo = ActiveDocument.MailMerge.DataSource.DataFields("ESCOLA").Value
  31. nomeEscola = ActiveDocument.MailMerge.DataSource.DataFields("ESCOLA").Value
  32. 'prepara o nome do arquivo tirando caracteres especiais
  33. teste = Acento(nomeArquivo)
  34. f = registro
  35. Do While nomeArquivo = nomeEscola
  36. ' cria o arquivo pdf
  37. ate = registro
  38. ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
  39. nomeEscola = ActiveDocument.MailMerge.DataSource.DataFields("ESCOLA").Value
  40. registro = registro + 1
  41. Loop
  42.  
  43. ActiveDocument.ExportAsFixedFormat2 OutputFileName:= _
  44. "C:UsersrepraDesktopgabarito_" & teste & ".pdf" _
  45. , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
  46. wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=1, To:=5, _
  47. Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
  48. CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
  49. BitmapMissingFonts:=True, UseISO19005_1:=False
  50.  
  51. Next registro
  52. End Sub
  53. Function Acento(caract)
  54.  
  55. 'caracteres especiais
  56. codiA = "-/àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"
  57.  
  58. 'Letras correspondentes para substituição
  59. codiB = "_ aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
  60.  
  61. temp = caract
  62.  
  63. 'Loop que irá de andará a string letra a letra
  64. For i = 1 To Len(temp)
  65.  
  66. 'InStr buscará se a letra indice i de temp pertence a
  67. ' codiA e se existir retornará a posição dela
  68. p = InStr(codiA, Mid(temp, i, 1))
  69.  
  70. 'Substitui a letra de indice i em codiA pela sua
  71. ' correspondente em codiB
  72. If p > 0 Then Mid(temp, i, 1) = Mid(codiB, p, 1)
  73. Next
  74.  
  75. 'Retorna a nova string
  76. Acento = temp
  77.  
  78. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement