فرآیند تبدیل از ورود به سیستم MS اکسل© به ADIF نسبتا ساده است و می تواند انجام شود با استفاده از یک بیت از برنامه نویسی VBA. از طریق این پیوند می تواند اشاره به مشخصات ADIF 1.0 است که توسط بسیاری از ورود به سیستم استفاده می شود, مهم است که شما این سند به عنوان خوانده شده.
برای شروع یک فرآیند تبدیل بر اساس شروع به آموزش این با ایجاد یک فایل در اکسل©. در کتانی نخستین نویسنده به نام رشته شما می خواهید به واردات (لطفا ADIF 1.0 از نام رشته). حتی در خط اول, نوع “ADIF RAW” تاریخ و زمان آخرین سلول, این است که در آن متن را در ADIF نوشته شده است.
برگه است که شبیه به این (اما هنوز هیچ اطلاعاتی در خط 2). اگر چه در قالب ADIF یک حداقل تعداد رشته ها مشخص نیست, حداقل QSO ورود به سیستم شما باید مقادیر را به تماس شده اند, QSO_Date, Time_On, گروه حالت E.
سپس برگه را انتخاب کنید و تمامی فرمت سلول ها به صورت متن.
فایل را ذخیره کنید به عنوان xls2adi.xls (کاربرگ در اکسل©)
اجازه دهید ما هم اکنون نوشتن و وارد کردن کد در VBA. برو به ابزارهای / ماکرو کلیک کنید و ویژوال بیسیک تدوینگر (کلیدهای Alt F11).
در ویرایشگر VBA ThisWorkbook دوبار کلیک کنید’ است که در این پروژه – 'VBAProject. این جایی است که شما می توانید بلوک اصلی از کد که اجرا خواهد شد وقتی که این فایل را باز دوباره.
بلوک از کد که زیر مجموعه های برخی از متغیرها و فراخوانی تابع fCampoAdifValido (خط 05) است که چک به نام حوزه است که در خط اول مربوط به مشخصات از ADIF. اگر تمام نام فیلد ها تابع درست تماس pEscreveAdif روش (خط 09) خواهد شد ورود به سیستم در ADIF نوشتن, اگر یک میدان است نام تابع را نشان می دهد بی اعتبار ، پیام خطا (خط 07) و به پایان می رسد.
کپی / چسباندن و یا نوع کد زیر را:
پیام زیر Workbook_Open() به عنوان بولی کم bNomeDoCampoValido iUltimaLinha = fQualEAUltimaLinha(conLinhaInicial) sUltimaColuna = fQualEAUltimaColuna(conColunaInicial) bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna) اگر bNomeDoCampoValido = FALSE سپس MsgBox ("یافت نام فیلد نامعتبر" & vbCrLf & "حذف ستون پر شده با رنگ قرمز!") پایان دیگری pEscreveAdif IfEnd زیر
در ویرایشگر VBA ، کلیک کنید درج / ماژول. در این ماژول می شود کد باقی مانده است که توسط بلوک اصلی به نام.
conLinhaInicial ثابت (خط 02 بلوک بعدی) و conColunaInicial (خط 03 بلوک بعدی) تعریف خط 2 (گسترده) از ثبت نام اول و که ستون (گسترده) اولین زمینه.
fQualEAUltimaLinha توابع (خط 08 بلوک بعدی) و fQualEAUltimaColuna (خط 17 بلوک بعدی) تعیین خواهد کرد آخرین سطر و ستون اطلاعات. این نیاز به یک سلول خالی به معنای پایان پرونده ورود به سیستم.
fCampoAdifValido تابع (خط 05 بلوک قبلی) آزمون اعتبار نام زمینه. چرخه مورد انتخاب sNomeDoCampo’ (خط 31 بلوک بعدی) زمینه های بیشتر را می توان با توجه به مشخصات از ADIF اضافه شده.
pEscreveAdif روش (خط 09 بلوک قبلی) به متن در ستون است که ADIF نوشتن “ADIF RAW” خط اول. این روش از میدان Ifen QSO_DATE گرفته, دو نقطه از میدان و M TIME_ON در پایان گروه در قسمت اضافه شده. برای اینکه این کلان تر می توان به شرایط دقیق تر برای چک کردن داده ها در این روش اعمال.
کپی / چسباندن و یا نوع کد زیر را در داخل ماژول:
به توایع انتخاب ExplicitPublic conLinhaInicial به عنوان عدد صحیح = 2 توایع عمومی conColunaInicial به عنوان رشته = "A" iUltimaLinha IntegerPublic sUltimaColuna به عنوان رشته(iPrimeiraLinha به عنوان عدد صحیح) IValRecebido به عنوان تار عدد صحیح به عنوان عدد صحیح = iValRecebido iPrimeiraLinha (Folha1.Cells(iValRecebido, "A")) > 0 iValRecebido = iValRecebido + 1 حلقه fQualEAUltimaLinha = iValRecebido - 1 عملکرد پایان (sPrimeiraColuna رشته) رشته (sPrimeiraColuna) آیا در حالی که لن(Folha1.Cells(1, CHR(iValRecebido))) > 0 iValRecebido = iValRecebido + 1 حلقه (iValRecebido - 1) عملکرد پایان (sPrimeiraColuna رشته, sUltimaColuna به عنوان رشته) بولی (sPrimeiraColuna) برای صعودی(sUltimaColuna) sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64)) انتخاب کنید مورد sNomeDoCampo "باند": fCampoAdifValido = مورد واقعی = "دعوت": fCampoAdifValido = مورد واقعی = "CQZ": fCampoAdifValido = مورد واقعی = "حالت": fCampoAdifValido = مورد واقعی = "qso_date": fCampoAdifValido = مورد واقعی = "rst_rcvd": fCampoAdifValido = مورد واقعی = "rst_sent": fCampoAdifValido = مورد واقعی = "SRX": fCampoAdifValido = مورد واقعی = "stx": fCampoAdifValido = مورد واقعی = "time_on": fCampoAdifValido = مورد واقعی = "adif خام" fCampoAdifValido = واقعی - 64 مورد دیگر Folha1.Cells(1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0) fCampoAdifValido = پایان غلط انتخاب تابع بعدیانتها() به عنوان تار iLinhaCorrente صحیح "" برای iColunaCorrente = صعودی(conColunaInicial) برای صعودی(sUltimaColuna) - 1 اگر LCase(Folha1.Cells(1, CHR(iColunaCorrente))) = "باند" سپس sTextoNaCelula = Folha1.Cells(iLinhaCorrente, CHR(iColunaCorrente)) & "M" دیگری اگر LCase(Folha1.Cells(1, CHR(iColunaCorrente))) = "qso_date" سپس sTextoNaCelula = به جای(Folha1.Cells(iLinhaCorrente, CHR(iColunaCorrente)), "-", "") دیگری اگر LCase(Folha1.Cells(1, CHR(iColunaCorrente))) = "time_on" سپس iLinhaCorrenteelula = به جای(Folha1.Cells(iLinhaCorrente, CHR(iColunaCorrente)), ":", "") دیگری sTextoNaCelula = Folha1.Cells(iLinhaCorrente, CHR(iColunaCorrente)) پایان اگر پایان اگر پایان اگر sLinhaEmAdif = sLinhaEmAdif & "<" & LCase(Folha1.Cells(1, CHR(iColunaCorrente))) & ":" & تنها(sTextoNaCelula) & ">" & Folha1.Cells sTextoNaCelula بعدی(iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">" بعدیانتها زیر
کلیک کنید فایل / ذخیره xls2adi.xls و بسته ویرایشگر VBA.
در حال حاضر اطلاعات خود را در MS فایل اکسل را کپی کنید© می خواهید تبدیل به ستون های مناسب, جدی ترک در پایان و اکسل©.
شما ممکن است نیاز به تغییر تنظیمات برای اکسل sugurança© برای اجرای ماکرو, در صورت نیاز به ابزارهای / ماکرو کلیک کنید و به امنیت, سطح پایین تر را انتخاب کنید. این برای اکسل نوشته شده بود© EM MS ویندوز XP© (هر دو در نسخه پرتغالی). اگر شما این کد در یک زبان دیگر استفاده از, به عنوان مثال در زبان انگلیسی, جایگزین Sheet1 مدت’ Sheet1 POR’
هنگامی که شما با دوبار کلیک xls2adi.xls فایل, کد شما فقط وارد اجرا خواهد شد و ستون “ADIF RAW” است ورود ما در قالب ADIF.
در حال حاضر به پایان, انتخاب مطالب ستون “ADIF RAW” الکترونیک copie (کلیدهای Ctrl C), شروع به دفترچه یادداشت (دفترچه یادداشت) الکترونیک کول (کلیدهای Ctrl V). فایل را ذخیره کنید با پسوند های اضافی.
این نمونه کد می باشد به رایگان استفاده کنید, شما آزادانه می توانید استفاده کنید. این یک مثال بسیار ساده است که فقط می تواند انجام شود با استفاده از VBA است (ویژوال بیسیک برای برنامه های کاربردی). این مکمل سنجی با کد دقیق تر, به خصوص در qso_date زمینه’ E 'time_on, که در آن باید از فرمت های ADIF مشخصات بازی. اگر شما متوجه خطا و یا هر گونه سوال, دریغ نکنید به نظر. من امیدوارم این مقاله مفید.