Prosessi vaihdettaessa MS Excelin log© että ADIF on suhteellisen yksinkertainen ja voidaan tehdä käyttäen hieman ohjelmointia VBA. Tätä kautta linkki voi viitata eritelmät ADIF 1.0 joka on käytössä useimmilla log, On tärkeää, että luet tämän asiakirjan.

Aloita muuntamisprosessin perustuu tämän opetusohjelman aloittaa luomalla tiedosto MS Excel©. Ensimmäisessä liinavaatteet Kirjoita nimi kentät haluavat tuoda (Tarkista ADIF 1.0 nimen kentät). Jo ensimmäisellä rivillä, tyyppi “ADIF RAW” viimeinen solu, Täällä Teksti kirjoitetaan ADIF.

Laskentataulukko on tällaiseksi (mutta vielä ei ole tietoa line 2). Vaikka ADIF muotoa ei määritellä vähimmäismäärä kentät, Ainakin QSO log on arvot Soita, QSO_Date, Time_On, Band E-tila.

Valitse sitten koko laskentataulukon ja muotoile solut tekstinä.

Tallenna tiedosto xls2adi.xls (laskentataulukko MS Excel©)

Tehkäämme nyt kirjoittaa ja lisätä koodin VBA. Siirry Työkalut / Makro ja valitse Visual Basic Editor (Alt F11).

Vuonna VBA editori kaksoisnapsauttamalla 'ThisWorkbook’ joka on "Project – VBAProject ". Tämä on, jos saat tärkein koodiosion joka jatkuu kun avaat tämän tiedoston uudelleen.

Koodiosion joka seuraa asetetaan joitakin muuttujia ja pyytää toiminnon fCampoAdifValido (viiva 05) että tarkistaa onko kentän nimi, joka on ensimmäisellä rivillä vastaa määrittely ADIF. Jos kaikki kenttien nimet ovat oikein funktiokutsut menettely pEscreveAdif (viiva 09) kirjoittaa kirjaudu ADIF, Jos kenttä on virheellinen nimi toiminto näyttää virheilmoituksen (viiva 07) ja päättyy.

Kopioi / liitä tai kirjoita seuraava koodi:

 

Private Sub Workbook_Open()
  Koska Boolen Dim bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Jos bNomeDoCampoValido = False Sitten
       ("Löytyi Virheellinen kenttien nimet" & vbCrLf & "Poista sarakkeet täytetään punaisella!")
    Muu
      

Vuonna VBA editorissa, valitse Insert / Module. Tässä moduulissa on jäljellä koodia kutsutaan tärkein lohko.

Vakiot conLinhaInicial (viiva 02 Seuraava lohko) ja conColunaInicial (viiva 03 Seuraava lohko) määritellä linja 2 (Taulukkolaskentaohjelma) on ensimmäisen rekisteröinnin yhteydessä ja että sarakkeen (Taulukkolaskentaohjelma) ensimmäistä kenttää.

Toiminnot fQualEAUltimaLinha (viiva 08 Seuraava lohko) ja fQualEAUltimaColuna (viiva 17 Seuraava lohko) ratkaisee viimeisen rivin ja sarakkeen tiedot. Tämä edellyttää Tyhjä solu tarkoittaa loppua lokitietueet.

Toiminto fCampoAdifValido (viiva 05 Edellinen lohko) testaa pätevyyttä kentän nimi. Sykli "Select Case sNomeDoCampo’ (viiva 31 Seuraava lohko) lisää kenttiä voidaan lisätä mukaan erittely ADIF.

Menettely pEscreveAdif (viiva 09 Edellinen lohko) kirjoittaa tekstiä sarakkeeseen, joka on ADIF “ADIF RAW” ensimmäinen rivi. Tämä menettely on otettu alalla Ifen QSO_DATE, kaksi pistettä alan ja lisäsi TIME_ON M lopussa kentän BAND. Jotta tämä makro voidaan asettaa tiukempia ehtoja tarkistamalla tietoja tässä menettelyssä.

Kopioi / liitä tai kirjoita seuraava koodi sisällä moduuli:

 

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
    Silmukka
   - 1
End Function

(String sPrimeiraColuna) String
  (sPrimeiraColuna)
    Älä Vaikka Len(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    Silmukka
  (iValRecebido - 1)
End Function

(String sPrimeiraColuna, sUltimaColuna As String) Boolen
  (sPrimeiraColuna) To Asc(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Valitse Case sNomeDoCampo
         "bändi": fCampoAdifValido = True
         "puhelu": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "tila": 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 raaka"
          fCampoAdifValido = True
           - 64
        Case Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False
        ()
  As Integer Dim iLinhaCorrente
   ""
    Saat iColunaCorrente = Asc(conColunaInicial) To Asc(sUltimaColuna) - 1
      Jos LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "bändi" Sitten
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Muu
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Sitten
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Muu
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Sitten
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Muu
            (iLinhaCorrente, Chr(iColunaCorrente))
          End If
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Vain(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Seuraava

 

Klikkaa File / Save xls2adi.xls ja sulje VBA editori.

Nyt kopioi tallennettuja MS Excel-tiedostoja© haluat muuntaa sopivaan sarakkeet, vakavia lopettaa lopussa ja MS Excel©.

Saatat joutua muuttamaan asetuksia MS Excel sugurança© suorittaa makroja, Tarvittaessa valitse Tools / Macro ja valitse Suojaus, valita alemman tason. Tämä oli kirjoitettu MS Excel© EM MS Windows XP© (sekä Portugalin versio). Jos käytät tätä koodia toisella kielellä, esim. Englanti, korvata termi "Sheet1’ por "Taul1’

Kun kaksoisnapsauttamalla tiedostoa xls2adi.xls, koodi juuri syöttämäsi toteutetaan ja sarake “ADIF RAW” on meidän Kirjaudu ADIF muodossa.

Nyt loppuun, valitse sarake sisältö “ADIF RAW” e Copie (Ctrl C), Käynnistä Muistio (Muistilehtiö) e cole (Ctrl V). Tallenna tiedosto pidentämisestä.

Tämä koodi näyte vapaasti käyttää, Voit vapaasti käyttää. Se on hyvin yksinkertainen esimerkki siitä, mitä voidaan tehdä vain VBA (Visual Basic for Applications). Täydentää tätä koodia vahvistusten kanssa tarkemman, erityisesti aloilla "qso_date’ e 'time_on ", missä muodoissa on ottelun erittely ADIF. Jos huomaat virheen tai on kysyttävää, älä epäröi kommentoida. Toivon artikkeli on hyötyä.

Tunnisteet: ,