ПредишенСледващото

По време на изпълнението на кода в Excel, в случай на дългосрочната ефективност на процеса, е необходимо да се информира потребителя, че приложението работи постоянно, а не да се затвори, колкото може да изглежда на пръв поглед.

В много случаи, това е достатъчно, за да успокои потребителите на програмите си. Ако искате да се предостави повече информация за информиране на останалата част от лечението, процентът на завършване, ще спре процедурата, лента за състоянието, не мога да направя.

Тази статия описва как да създадете прозорец за зареждане (или по друг прогрес бар) за вашите процедури, без да задръствате им код.

Изтегляне на файла с класа може да бъде в края.

Съставът на лентата за напредъка

Конструиран прозорец за сваляне на базата на проста форма обичай UserForm, която съдържа следните елементи:

  1. Две етикети контрол. Те се използват в комбинация, за да изведете лентата за напредъка. Първият се използва като контейнер и има отлична фон от формата на фона. Вторият заложено в първата и има динамичен ширина, която варира в зависимост от процеса на изпълнение на процент. фона й е различен от фона и фона форма майка елемент. Тези елементи могат да бъдат заменени с един по-нататък, което се нарича - ProgressBar, но използването му може да се свърже някои от проблемите, които ще бъдат посочени по-долу.
  2. Три етикети контрол. Всеки от тях е независима от останалите и е предназначен за показване на специфична информация: продължителност на процеса, оставащото време, броят на последните етапи на процеса.
  3. TehBox да се изобразят специални съобщения до потребителя.

Ако ви донесе на всички елементи на формата, то ще има следния вид:

Progressbar - създаването на лентата за зареждане на VBA

В случай на безполезност на някои елементи, те не може да печата. Уверете се, оттеглянето на част от съществуващата клас «ProgressBar», копие от което първо трябва да се създаде (Set Var = New ProgressBar). След това с помощта на създадения клас, можете да попълните формуляра по програмен елементи и ги помолете конкретни стойности.

Описание на класа и как да се създаде обувка прозорци

За да започнете, да разгледа съществуващите методи за този клас, не се фокусира върху кода, но само на неговата функционалност:

  • метод createLoadingBar - създава лента за зареждане на формата;
  • createString - създаване терминът "обработени:% ...";
  • createtimeDuration - създаване Терминът "време за обработка: ...";
  • createtimeFinish - създава поредица "Оставащото време за обработка на ...";
  • createTextBox - създава TextBox елемент;
  • setParameters - задава прозореца на параметрите на зареждането за предстоящия процес. Приема 3 аргумента:
    • expProcess_INT - задължителен аргумент. Счита цяло число, Съобщава поради броя на етапите е последващия процес;
    • UpdateInterval_INT - незадължителен аргумент. С него можете да зададете интервал от формуляра за актуализация, т.е. след поредица от стъпки, всички елементи сваляния прозорците трябва да актуализирате;
    • UpdTimeInterval_INT_SEC - незадължителен аргумент. Определя интервала на актуализация в форма секунди. Аргументът, има смисъл само, ако той не е уточнен UpdateInterval_INT.
  • В случай, че и двата аргумента, посочва интервала, които не са посочени или е 0, актуализация интервал по подразбиране ще бъде равен на една секунда.
  • Започнете метод - започва прозореца за изтегляне. Този метод е важно, защото показва самата форма и съхранява началния час, което е по-късно се използва за изчисляване. Методът взима един незадължителен аргумент - заглавие. С нея ще можете да настроите титлата образуват лентата за зареждане. Стойността по подразбиране е равно на "процеса изпълнение" заглавния ред.
  • Актуализация - актуализира формата, когато интервалът е бил посочен от setParameters. Този метод се извършва по два избираеми аргументи:
    • curProcess - число. Брой на сегашния етап на процеса;
    • stringTextBox - линия до текстовото поле.
  • exitBar - затваря лентата за напредъка и разтоварване формата от паметта.
  • getForm - връща препратка към формата на лентата за напредъка.

Това се прави по две причини.

Втората причина е, производителност. Въпреки факта, че идеята за оттегляне за стартиране на информация е основателно, разбира се употребата му забавя процеса. Например, използвайки следния пример ProgressBar времето за третиране е 1 минута 17 секунди в предвидения интервал във втората актуализация. При актуализиране форма на всеки етап в продължение на 2 минути, анализирани от малко повече от 2 стотни от процента. Без помощта на всички взеха 8 секунди. Така че се опитват да използват лентата за напредъка, само когато наистина има значение и прилага оптималния интервал - секунди е достатъчно, повече от тази стойност се наблюдава промените в производителността.

Също така имате възможност да спира извършването на всички процеси, като затвори прозореца за изтегляне. Предварително потребител ще покаже екран за потвърждение.

Пример прогрес бар свързване към макроса

След това е един прост пример за сортиране символни низове. самата е смисълът на процедурата не е, но е добре доказана способност да зареди Windows.

Многоетажен лента за зареждане

Приложението е описано в тази статия ви позволява да създадете един клас независими един от друг прозорец за изтегляне на процесите на няколко нива.

Не се изисква по-нататъшни действия, за да се създаде нова инстанция на класа достатъчно (Нова ProgressBar) и да работите с него, независимо от процеса на родител.

Препоръка: За детето процеси добави към формите на уникални изтегляния заглавията (ProgressBar.Start обект). Той уведомява потребителската програма, която се изпълнява в момента подпроцес.

Microsoft ProgressBar контрол Специален елемент

Говореше се, че по-горе, че самата лентата за зареждане да може да се замени с допълнителна форма на контрол, който е специално предназначен за тази цел и се нарича Microsoft ProgressBar контрол, версия 6.0. За да го приложи, просто кликнете с десния бутон на мишката върху Tollbox панел и изберете "допълнителен контрол.".

Progressbar - създаването на лентата за зареждане на VBA

За да разрешите този проблем, първо проверете дали вашият компютър MSCOMTCL.ocx файл. Тази библиотека съдържа Windows 6.0 общи контроли. Тя трябва да се намира в папката \ Windows \ SysWOW64 за x64-базирана операционна система или \ Windows \ Sistem32 за 32-битова. Ако е необходимо, да го изтеглите и да го поставите в желаната папка.

След като сте видели присъствието на библиотеката, трябва да го регистрирате. Започнете командния ред като администратор (Start -> All Programs -> Аксесоари -> Command Prompt) и стартирайте regsvr32 MSCOMTCL.ocx.

Изтеглете например в VBA лента за зареждане

Изтеглете пример progressbar VBA, с използване на Microsoft ProgressBar Control.

Подкрепете проекта - споделете линка, благодаря!