Het proces van de omzetting van log MS Excel's© naar ADIF is relatief eenvoudig en kan gedaan worden met behulp van een beetje programmeren VBA. Door deze link kan verwijzen naar de specificaties van de ADIF 1.0 die wordt gebruikt door de meeste loggen, is belangrijk dat u dit document te lezen.

Om een ​​conversie proces op basis van deze tutorial te beginnen start door het creëren van een bestand in MS Excel©. In de eerste linnen Schrijf de naam van de velden die u zult willen importeren (Controleer de ADIF 1.0 van de naam van de velden). Zelfs in de eerste lijn, type “ADIF RAW” na laatste cel, dit is waar de tekst wordt geschreven in ADIF.

Het werkblad is om te kijken als deze (maar nog steeds geen gegevens over de lijn 2). Hoewel het ADIF formaat geeft niet aan een minimum aantal velden, ten minste uw QSO log moet hebben waarden te bellen, QSO_Date, Time_On, Band e Mode.

Selecteer vervolgens het hele werkblad en het formaat van de cellen als tekst.

Sla het bestand op als xls2adi.xls (werkblad in MS Excel©)

Laten we nu schrijven en plaats de code in VBA. Ga naar Extra / Macro en klik op Visual Basic Editor (Alt F11).

In de VBA-editor dubbelklikt u op 'ThisWorkbook’ dat is in de 'Project – VBAProject '. Dit is waar je het belangrijkste blok van de code die wordt uitgevoerd wanneer u weer open dit bestand.

Het blok van de code die volgt stelt een aantal variabelen en roept de functie fCampoAdifValido (lijn 05) die zal controleren of de veldnaam die is op de eerste regel komt overeen met de specificatie van de ADIF. Als alle veldnamen correct zijn functie-aanroepen van de procedure pEscreveAdif (lijn 09) zal schrijven de log in ADIF, Als een veld heeft een ongeldige naam van de functie toont een foutmelding (lijn 07) en eindigt.

Kopiëren / plakken of typ de volgende code:

 

Private Sub Workbook_Open()
  As Boolean Dim bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Als bNomeDoCampoValido = False Dan
       ("Ongeldig veldnamen" & vbCrLf & "Verwijder de kolommen gevuld in het rood!")
    Anders
      

In de VBA-editor, klik op Invoegen / Module. In deze module worden de resterende code die wordt aangeroepen door de belangrijkste blok.

De constanten conLinhaInicial (lijn 02 het volgende blok) en conColunaInicial (lijn 03 het volgende blok) bepalen de lijn 2 (Spreadsheet) hebben de eerste registratie en dat de kolom A (Spreadsheet) het eerste veld.

De functies fQualEAUltimaLinha (lijn 08 het volgende blok) en fQualEAUltimaColuna (lijn 17 het volgende blok) bepaalt de laatste rij en kolom van gegevens. Dit vraagt ​​om een ​​lege cel betekent het einde van de log records.

De functie fCampoAdifValido (lijn 05 do vorige bloco) test de geldigheid van de veldnaam. De cyclus 'Select Case sNomeDoCampo’ (lijn 31 het volgende blok) meer velden kunnen worden toegevoegd volgens de specificatie van de ADIF.

De procedure pEscreveAdif (lijn 09 do vorige bloco) zal schrijven de tekst in de kolom die ADIF heeft “ADIF RAW” de eerste lijn. Deze procedure is genomen uit het veld Ifen QSO_DATE, de twee punten van het veld en voegde een TIME_ON M aan het einde van het veld BAND. Om dit meer macro kunnen worden opgelegd, strengere voorwaarden voor het controleren van gegevens in deze procedure.

Kopiëren / plakken of typ de volgende code in de module:

 

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

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

(sPrimeiraColuna As String, sUltimaColuna As String) De Booleaanse
  (sPrimeiraColuna) Om Asc(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Select Case sNomeDoCampo
         "band": fCampoAdifValido = True
         "noemen": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "mode": 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 grondstoffen"
          fCampoAdifValido = True
           - 64
        Case Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False
        ()
  As Integer Dim iLinhaCorrente
   ""
    Voor iColunaCorrente = Asc(conColunaInicial) Om Asc(sUltimaColuna) - 1
      Als LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "band" Dan
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Anders
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Dan
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Anders
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Dan
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Anders
            (iLinhaCorrente, Chr(iColunaCorrente))
          End If
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Alleen(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Volgende

 

Klik op Bestand / Opslaan xls2adi.xls en sluit de VBA editor.

Kopieer nu de gegevens in uw MS Excel-bestanden© u wilt converteren naar de juiste kolommen, ernstige stoppen aan het einde en MS Excel©.

Mogelijk moet u de instellingen voor MS Excel sugurança veranderen© uit te voeren macro's, indien nodig, ga naar Extra / Macro en klik op Beveiliging, kiezen voor een lager niveau. Dit werd geschreven voor MS Excel© em MS Windows XP© (zowel in de Portugese versie). Gebruik deze code is noutra vai lingua, bijvoorbeeld in het Engels, vervanging van de term "Blad1’ por 'Blad1’

Wanneer u dubbelklikt op het bestand xls2adi.xls, de code die u zojuist hebt ingevoerd zal worden uitgevoerd en de kolom “ADIF RAW” is onze Log in ADIF formaat.

Nu tot eind, Selecteer de kolom inhoud “ADIF RAW” en kopiëren (Ctrl C), starten of Notepad (Blocnote) en cole (Ctrl V). Sla het bestand met de extensie extra.

Deze code monster is gratis te gebruiken, U kunt gratis gebruik maken van. Het is een heel eenvoudig voorbeeld van wat er kan alleen worden gedaan met behulp van VBA (Visual Basic for Applications). Aanvulling op deze code validaties met meer accurate, vooral in de velden 'qso_date’ e 'time_on', waar de formaten moeten overeenkomen met de specificaties ADIF. Als u een fout opmerkt of vragen hebt, aarzel dan niet om commentaar. Ik hoop dat het artikel van nut zal zijn.

Tags: ,