Proces pretvorbe iz MS Excel-dnevnik© u ADIF je relativno jednostavna i može se obaviti pomoću malo programiranja VBA. Kroz ovaj link može se odnositi na specifikacije ADIF 1.0 koji se koristi u većini log, je važno da ste pročitali ovaj dokument.
Za početak postupka pretvorbe na temelju ovoga tutorial započeti stvaranjem datoteke u MS Excel©. U prvom lana Napišite ime polja ćete želite uvesti (Molimo provjerite ADIF 1.0 imena polja). Čak u prvom redu, tip “ADIF RAW” na posljednja stanica, Ovo je mjesto gdje će tekst biti napisan u ADIF.
Radni list tako da izgleda ovako (ali još uvijek nema podataka o liniji 2). Iako ADIF oblik ne određuje minimalni broj polja, najmanje log veza mora imati vrijednosti Poziv, QSO_Date, Time_On, S modni pojas.
Zatim odaberite čitavog radnog lista i oblik stanice kao tekst.
Spremite datoteku kao xls2adi.xls (list u MS Excel©)
Vratimo se sada pisati i umetnite kod u VBA. Idite na Tools / Macro, a zatim kliknite Visual Basic Editor (Alt F11).
U VBA editor Dvaput kliknite na "ThisWorkbook’ da je u 'projekta – VBAProject '. Ovo je mjesto gdje ćete dobiti glavni blok koda koji će se pokrenuti kada otvorite ovu datoteku ponovo.
Blok koda koji slijedi postavlja neke varijable i poziva funkcija fCampoAdifValido (linija 05) koji će provjeriti je li naziv polja koje je na prvoj crti odgovara specifikaciji ADIF. Ako su svi nazivi polja točni funkcija poziva postupak pEscreveAdif (linija 09) će napisati zapisnik ADIF, Ako polje ima pogrešan naziv funkcije prikazuje poruka o pogrešci (linija 07) i završava.
Kopiraj / Zalijepi ili upišite sljedeći kod:
Private Sub Workbook_Open() Kao Boolean Dim bNomeDoCampoValido (conLinhaInicial) sUltimaColuna = fQualEAUltimaColuna(conColunaInicial) bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna) Ako bNomeDoCampoValido = False Tada ("Pronađeno nevažeći nazive polja" & vbCrLf & "Uklonite stupce popunjava u crvenom!") Drugo
U VBA editor, kliknite Umetni / Modul. U ovom modulu će se preostale kôd koji se zove glavni blok.
Konstante conLinhaInicial (linija 02 sljedeći blok) i conColunaInicial (linija 03 sljedeći blok) definirati linije 2 (Proračunske tablice) su prva registracija i da stupac (Proračunske tablice) prvo polje.
Funkcije fQualEAUltimaLinha (linija 08 sljedeći blok) i fQualEAUltimaColuna (linija 17 sljedeći blok) će odrediti posljednji redak i stupac podataka. To zahtijeva praznu ćeliju znači kraj log zapisa.
Funkcija fCampoAdifValido (linija 05 ne prethodnih bloco) testirana valjanost naziv polja. Ciklusa 'Select Case sNomeDoCampo’ (linija 31 sljedeći blok) više polja mogu biti dodan prema specifikaciji ADIF.
Postupak pEscreveAdif (linija 09 ne prethodnih bloco) će napisati tekst u stupcu koji je ADIF “ADIF RAW” prva linija. Ovaj postupak je preuzet iz područja Ifen QSO_DATE, dvije točke u polju i dodao TIME_ON M na kraju polja BAND. Da bi to više makronaredba može se izreći strože uvjete za provjeru podataka u ovom postupku.
Kopiraj / Zalijepi ili upišite sljedeći kod u modul:
Opcija Eksplicitno 2 Javni Const conColunaInicial kao niz = "A" Kao Integer Public iUltimaLinha (iPrimeiraLinha Kao Integer) Kao Integer (Folha1.Cells(iValRecebido, "A")) > 0 iValRecebido = iValRecebido + 1 Petlja - 1 End Function (sPrimeiraColuna kao niz) Gudački (sPrimeiraColuna) Učiniti dok Len(Folha1.Cells(1, Chr(iValRecebido))) > 0 iValRecebido = iValRecebido + 1 Petlja (iValRecebido - 1) End Function (sPrimeiraColuna kao niz, sUltimaColuna kao niz) Booleova (sPrimeiraColuna) Za uzlazno(sUltimaColuna) sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64)) Odaberite Case sNomeDoCampo "grupa": fCampoAdifValido = True "poziv": fCampoAdifValido = True "CQZ": fCampoAdifValido = True "način": 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 sirovina" fCampoAdifValido = True - 64 Slučaj drugi (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0) fCampoAdifValido = False () Kao Integer Dim iLinhaCorrente "" Za iColunaCorrente = uzlazno(conColunaInicial) Za uzlazno(sUltimaColuna) - 1 Ako LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "grupa" Zatim (iLinhaCorrente, Chr(iColunaCorrente)) & "M" Drugo (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Zatim (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "") Drugo (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Zatim (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "") Drugo (iLinhaCorrente, Chr(iColunaCorrente)) Kraj Ako & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Samo(sTextoNaCelula) & ">" & sTextoNaCelula (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">" Sljedeći
Kliknite na File / Save xls2adi.xls i zatvorite VBA editor.
Sada kopirajte podatke u MS Excel datoteka© želite pretvoriti u odgovarajući stupci, ozbiljno prestati na kraju i MS Excel©.
Možda ćete morati promijeniti postavke za MS Excel sugurança© za pokretanje makronaredbe, ako je potrebno otići na Tools / Macro i kliknite sigurnost, Odaberite nižoj razini. To je bio napisan za MS Excel© em MS Windows XP© (kako u Portugalski inačici). Koristite ovaj kod noutra Vai Lingua, npr. na engleskom jeziku, zamijeniti termin "Sheet1’ Por 'Sheet1’
Kada dvokliknete datoteku xls2adi.xls, kôd koji ste upravo unijeli će se izvršiti i stupaca “ADIF RAW” je naš Login ADIF formatu.
Sada do kraja, odaberite sadržaj stupca “ADIF RAW” i kopija (Ctrl C), početak ili Notepad (Blokčić za bilješke) i Cole (Ctrl V). Spremite datoteku s dodatno proširenje.
Ovaj kod uzorka je besplatan za korištenje, možete slobodno koristiti. To je vrlo jednostavan primjer onoga što se može učiniti pomoću VBA (Visual Basic for Applications). Komplement ovaj kod provjere valjanosti s više točnih, osobito u području 'qso_date’ e 'time_on', gdje formata mora odgovarati specifikaciji ADIF. Ukoliko zamijetite grešku ili imate bilo kakvih pitanja, ne ustručavajte se komentirati. Nadam se da članak će biti koristan.