Proces přechodu z log MS Excel© na ADIF je poměrně jednoduché a lze provést pomocí trochu programování VBA. Prostřednictvím tohoto odkaz může odkazovat se na specifikace ADIF 1.0 který je používán většinou log, Je důležité, abyste si tento dokument.

Chcete-li spustit proces převodu na základě této konzultace začít vytvořením souboru v MS Excel©. V prvním prádlo Napište název pole budete chtít importovat (Zkontrolujte prosím ADIF 1.0 jména polí). I v první linii, typ “ADIF RAW” Na poslední buňka, Zde bude text napsaný v ADIF.

List je do této podoby (ale žádná data na lince 2). Ačkoli ve formátu ADIF nespecifikuje minimální počet polí, aspoň si QSO log musí mít hodnoty volání, QSO_Date, Time_On, Skupina E režim.

Pak vyberte celý list a formát buňky jako text.

Uložte soubor jako xls2adi.xls (list v MS Excel©)

Podívejme se nyní napsat a vložit kód v jazyce VBA. Přejděte na Nástroje / Makro a klepněte na příkaz Editor jazyka Visual Basic (Alt F11).

Na VBA editoru Poklepejte na "ThisWorkbook’ , který je v "Projektu – VBAProject ". To je místo, kde máte hlavní blok kódu, který se spustí při otevření tohoto souboru opět.

Blok kódu, který takto nastavuje některé proměnné a volá funkci fCampoAdifValido (vedení 05) , který zkontroluje, zda název pole, které je na prvním řádku odpovídá specifikaci ADIF. Pokud jsou všechny názvy polí jsou správné funkce volá postup pEscreveAdif (vedení 09) se bude psát log v ADIF, Je-li pole má neplatný název funkce zobrazí chybové hlášení (vedení 07) e skončil.

Kopírovat / vložit, nebo zadejte následující kód:

 

Private Sub Workbook_Open()
  Jak Boolean Dim bNomeDoCampoValido(conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Pokud se bNomeDoCampoValido = False pak ("Nalezené neplatné názvy polí" & vbCrLf & "Odstraňte sloupce naplněné v červeném!")
    Jiný

V editoru VBA, klepněte na tlačítko Vložit / Module. V tomto modulu se zbývající kód, který se nazývá hlavní blok.

Konstanty conLinhaInicial (vedení 02 Další blok) a conColunaInicial (vedení 03 Další blok) definuje linie 2 (Tabulkový procesor) mají první registraci a že sloupce (Tabulkový procesor) První pole.

Funkce fQualEAUltimaLinha (vedení 08 Další blok) a fQualEAUltimaColuna (vedení 17 Další blok) určí posledního řádku a sloupce dat. To vyžaduje prázdné buňky znamená konec log záznamů.

Funkce fCampoAdifValido (vedení 05 Předchozí do Bloco) testuje platnost názvu pole. Cyklu 'Select Case sNomeDoCampo’ (vedení 31 Další blok) více polí, mohou být přidány dle specifikace ADIF.

Postup pEscreveAdif (vedení 09 Předchozí do Bloco) napíše text ve sloupci, který má ADIF “ADIF RAW” první řádek. Tento postup je převzat z oboru Ifen QSO_DATE, dva body pole a přidal M TIME_ON na konci pole BAND. Aby to bylo makro lze uložit přísnější podmínky pro kontrolu údajů v tomto řízení.

Kopírovat / vložit, nebo zadejte následující kód v modulu:

 

Option Explicit 2
Public Const conColunaInicial As String = "A"
IUltimaLinha As Integer veřejné(iPrimeiraLinha As Integer) Integer(Folha1.Cells(iValRecebido, "A")) > 0
      iValRecebido = iValRecebido + 1
    Smyčka - 1
End Function(sPrimeiraColuna As String) String
  (sPrimeiraColuna)
    Dělat, když Len(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    Smyčka(iValRecebido - 1)
End Function(sPrimeiraColuna As String, sUltimaColuna As String) Boolean(sPrimeiraColuna) Na Asc(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Select Case sNomeDoCampo "skupina": fCampoAdifValido = True "volání": fCampoAdifValido = True "CQZ": fCampoAdifValido = True "způsob": 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 surovin"
          fCampoAdifValido = True - 64
        Case Else(1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False()
  As Integer Dim ILinhaCorrente ""
    Pro iColunaCorrente = Asc(conColunaInicial) Na Asc(sUltimaColuna) - 1
      Pokud se LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "skupina" Pak(iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Jiný(Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Pak(Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Jiný(Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Pak(Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Jiný(iLinhaCorrente, Chr(iColunaCorrente))
          End If & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Jen(sTextoNaCelula) & ">" & sTextoNaCelula(iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Další

 

Klikněte na Soubor / Uložit xls2adi.xls a zavřete Editor VBA.

Zkopírujte data v souborech MS Excel© Chcete-li převést do příslušného sloupce, vážně skončit na konci a MS Excel©.

Možná budete muset změnit nastavení pro MS Excel sugurança© spustit makra, Je-li nutné v menu Nástroje / Makro a klepněte na příkaz Zabezpečení, zvolte nižší úroveň. To byla napsána pro MS Excel© em MS Windows XP© (jak v portugalské verzi). Pomocí tohoto kódu je noutra VAI lingua, např. v angličtině, nahradit pojem "List1’ Por "List1’

Při poklepání na soubor xls2adi.xls, kód, který jste zadali budou provedeny a sloupců “ADIF RAW” je náš Přihlášení formátu ADIF.

Nyní až do konce, vyberte sloupec obsah “ADIF RAW” e kopie (Ctrl C), začátek nebo Poznámkový blok (Poznámkový blok) e školy (Ctrl V). Uložte soubor s příponou další.

Tento ukázkový kód je volně k použití, Můžete svobodně používat. Jedná se o velmi jednoduchý příklad, co lze provést pomocí VBA (Visual Basic for Applications). Doplní tento kód validace s přesnějšími, zejména v qso_date oblastech "’ e 'time_on ", kde formátu musí odpovídat specifikaci ADIF. Pokud zaznamenáte chybu nebo máte nějaké dotazy, neváhejte komentář. Doufám, že článek bude užitečný.