Procedimento para exportar um ficheiro de texto com delimitadores de vírgulas e de aspas no Excel

Resumo

O Microsoft Excel não tem um comando de menu para exportar automaticamente dados para um ficheiro de texto para que o ficheiro de texto seja exportado com aspas e vírgulas como delimitadores. Por exemplo, não existe nenhum comando para criar automaticamente um ficheiro de texto que contenha os seguintes dados:

"Texto1","Texto2","Texto3"

No entanto, pode criar esta funcionalidade no Excel através de um procedimento do Microsoft Visual Basic for Applications.

Mais informações

A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às suas necessidades específicas.

Pode utilizar a instrução Imprimir # num procedimento do Visual Basic semelhante ao seguinte para exportar um ficheiro de texto com aspas e vírgulas como delimitadores. Para que o procedimento funcione corretamente, selecione as células que contêm os seus dados antes de os executar.

Antes de trabalhar com o seguinte código de exemplo, siga estes passos:

  1. Abra um novo livro.

  2. No Microsoft Office Excel 2003 ou no Microsoft Excel 2002, aponte para Macro no menu Ferramentas e, em seguida, clique em Visual Basic Revisor. Em alternativa, prima Alt+F11.

    No Microsoft Office Excel 2007, clique no separador Programador e, em seguida, clique em Visual Basic no grupo Código . Em alternativa, prima ALT + F11.

    Nota

    Para mostrar o separador Programador no Friso, clique no Botão do Microsoft Office, clique em Opções do Excel, clique na categoriaPopular , clique para selecionar a caixa de verificação Mostrar separador Programador no Friso e, em seguida, clique em OK.

  3. No visual basic Revisor, clique em Módulo no menu Inserir.

  4. Escreva ou cole o seguinte código de exemplo na folha do módulo.

    Sub QuoteCommaExport()
       ' Dimension all variables.
       Dim DestFile As String
       Dim FileNum As Integer
       Dim ColumnCount As Long
       Dim RowCount As Long
    
       ' Prompt user for destination file name.
       DestFile = InputBox("Enter the destination filename" _
          & Chr(10) & "(with complete path):", "Quote-Comma Exporter")
    
       ' Obtain next free file handle number.
       FileNum = FreeFile()
    
      ' Turn error checking off.
       On Error Resume Next
    
       ' Attempt to open destination file for output.
       Open DestFile For Output As #FileNum
    
       ' If an error occurs report it and end.
       If Err <> 0 Then
          MsgBox "Cannot open filename " & DestFile
          End
       End If
    
       ' Turn error checking on.
       On Error GoTo 0
    
       ' Loop for each row in selection.
       For RowCount = 1 To Selection.Rows.Count
    
       ' Loop for each column in selection.
          For ColumnCount = 1 To Selection.Columns.Count
    
            ' Write current cell's text to file with quotation marks.
             Print #FileNum, """" & Selection.Cells(RowCount, _
                ColumnCount).Text & """";
    
             ' Check if cell is in last column.
             If ColumnCount = Selection.Columns.Count Then
                ' If so, then write a blank line.
                Print #FileNum,
             Else
                ' Otherwise, write a comma.
                Print #FileNum, ",";
             End If
          ' Start next iteration of ColumnCount loop.
          Next ColumnCount
       ' Start next iteration of RowCount loop.
       Next RowCount
    
       ' Close destination file.
       Close #FileNum
    End Sub
    
  5. Antes de executar a macro, selecione os dados que pretende exportar e, em seguida, execute o subroutine QuoteCommaExport.