Il processo di conversione dal Registro di MS Excel© a ADIF è relativamente semplice e può essere fatto utilizzando un po 'di programmazione VBA. Attraverso questo collegamento può fare riferimento alle specifiche del ADIF 1.0 che viene utilizzato dalla maggior parte dei log, è importante leggere questo documento.

Per avviare un processo di conversione basato su questo tutorial di iniziare con la creazione di un file in MS Excel©. Nella biancheria prima Scrivere il nome dei campi si desidera importare (Controllare la ADIF 1.0 del nome dei campi). Anche in prima linea, tipo “ADIF RAW” na cella, questo è dove il testo sarà scritto in ADIF.

Il foglio di lavoro è quello di guardare in questo modo (ma ancora nessun dato sulla linea 2). Nonostante il formato ADIF non specifica un numero minimo di campi, almeno il log qso devono avere valori di chiamata, QSO_Date, Time_on, Banda e modalità.

Quindi selezionare l'intero foglio di lavoro e formattare le celle come testo.

Salvare il file come xls2adi.xls (foglio di lavoro in MS Excel©)

Vediamo ora scrivere e inserire il codice in VBA. Andare in Strumenti / Macro e Visual Basic Editor (Alt F11).

Nell'editor VBA ThisWorkbook fare doppio clic su '’ che è in 'Project – VBAProject '. Questo è dove si ottiene il blocco principale di codice che verrà eseguito quando si apre il file di nuovo.

Il blocco di codice che segue definisce alcune variabili e chiama la funzione fCampoAdifValido (linea 05) che verificherà se il nome del campo che si trova sulla prima riga corrisponde alla specificazione del ADIF. Se tutti i nomi dei campi sono corretto funzionamento chiama la procedura pEscreveAdif (linea 09) scriverà il log in ADIF, Se un campo ha un nome non valido la funzione visualizza un messaggio di errore (linea 07) è completa.

Copiare / incollare o digitare il seguente codice:

 

Private Sub Workbook_Open()
  As Boolean Dim bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Se bNomeDoCampoValido = False Then
       ("Trovati i nomi di campo non valido" & vbCrLf & "Rimuovere le colonne riempite in rosso!")
    Altro
      

Nell'editor di VBA, fare clic su Inserisci / Modulo. In questo modulo sarà il codice rimanente che viene chiamato dal blocco principale.

Le costanti conLinhaInicial (linea 02 il blocco successivo) e conColunaInicial (linea 03 il blocco successivo) definire la linea 2 (Foglio elettronico) la prima registrazione e che la colonna A (Foglio elettronico) il primo campo.

Le funzioni fQualEAUltimaLinha (linea 08 il blocco successivo) e fQualEAUltimaColuna (linea 17 il blocco successivo) determinerà l'ultima riga e colonna dati. Ciò richiede una cella vuota significa la fine del record di log.

La funzione fCampoAdifValido (linea 05 fare precedenti bloco) verifica la validità del nome del campo. Il ciclo 'Select Case sNomeDoCampo’ (linea 31 il blocco successivo) più campi possono essere aggiunti secondo le specifiche del ADIF.

La procedura pEscreveAdif (linea 09 fare precedenti bloco) scriverà il testo nella colonna che ha ADIF “ADIF RAW” la prima linea. Questa procedura è tratto dal Ifen campo QSO_DATE, i due punti del campo e aggiunto una M time_on alla fine del campo BAND. Per rendere questa macro più può essere imposto condizioni più rigorose per i dati di archiviazione di questa procedura.

Copiare / incollare o digitare il seguente codice all'interno del modulo:

 

Option Explicit
 2
Public Const conColunaInicial As String = "A"
As Integer Public iUltimaLinha
(iPrimeiraLinha As Integer) As Integer
  (Folha1.Cells(iValRecebido, "A")) > 0
      iValRecebido = iValRecebido + 1
    Anello
   - 1
End Function

(sPrimeiraColuna As String) String
  (sPrimeiraColuna)
    Do While Len(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    Loop
  fQualEAUltimaColuna = Chr(iValRecebido - 1)
End Function

(sPrimeiraColuna As String, sUltimaColuna As String) Il booleano
  (sPrimeiraColuna) Per Asc(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Select Case sNomeDoCampo
         "banda": fCampoAdifValido = True
         "chiamata": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "modo": fCampoAdifValido = True
         "qso_date": fCampoAdifValido = True
         "rst_rcvd": fCampoAdifValido = True
         "rst_sent": fCampoAdifValido = True
         "SRX": fCampoAdifValido = True
         "stx": fCampoAdifValido = True
         "time_on": fCampoAdifValido = True
         "ADIF prime"
          fCampoAdifValido = True
           - 64
        Case Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False
        ()
  As Integer Dim iLinhaCorrente
   ""
    For iColunaCorrente = Asc(conColunaInicial) Per Asc(sUltimaColuna) - 1
      Se LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "banda" Poi
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Altro
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Poi
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Altro
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Poi
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Altro
            (iLinhaCorrente, Chr(iColunaCorrente))
          End If
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Solo(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Prossimo

 

Fare clic su File / Save xls2adi.xls e chiudere l'editor di VBA.

Ora copiare i dati nel vostro file di MS Excel© che si desidera convertire a colonne appropriate, uscire grave alla fine e MS Excel©.

Potrebbe essere necessario modificare le impostazioni per MS Excel sugurança© per eseguire le macro, se necessario, andare su Strumenti / Macro e fare clic su Protezione, scegliere un livello più basso. Questo è stato scritto per MS Excel© em MS Windows XP© (sia nella versione portoghese). Utilizzare questo codice è noutra vai Língua, ad esempio in inglese, Foglio1 sostituire il termine '’ por 'Foglio1’

Quando si fa doppio clic sul file di xls2adi.xls, il codice appena immesso verrà eseguito e la colonna “ADIF RAW” è il nostro Log in formato ADIF.

Ora per finire, selezionare il contenuto della colonna “ADIF RAW” è copia (Ctrl C), avviare o blocco note (Notepad) Cole è (Ctrl V). Salvare il file con l'estensione aggiuntiva.

Questo esempio di codice è libera di utilizzare, si può usare liberamente. Si tratta di un esempio molto semplice di quello che può essere fatto solo con VBA (Visual Basic for Applications). Completare questo validazioni codice con più accurate, soprattutto in qso_date campi "’ 'time_on' e, dove i formati deve corrispondere alla specifica ADIF. Se notate un errore o se avete domande, non esitate a commentare. Spero che l'articolo possa essere utile.

Tag: ,