Макро који је овде представљен је одличан начин да заштитите кориснике од ненамерног затварања датотеке пре чувања. Када се примени, овај макро обезбеђује да Екцел аутоматски сачува радну свеску пре него што је затвори.
Екцел ће обично упозорити кориснике који покушавају да затворе несачувану радну свеску, дајући им могућност да сачувају пре затварања. Међутим, многи корисници могу прескочити упозорење и нехотице кликнути на Не, говорећи Екцелу да се затвори без чувања. Овим макроом се од овога штитите аутоматским чувањем пре затварања.
Како функционише макро
Код се покреће догађајем ПреЦлосе радне свеске. Када покушате да затворите радну свеску, овај догађај се покреће и покреће код унутар. Суштина кода је једноставна — пита кориснике да ли желе да затворе радну свеску. Макро затим процењује да ли је корисник кликнуо на ОК или Цанцел.
Порука коју видите када покушате да затворите радну свеску.
Процена се врши наредбом Селецт Цасе. Наредба Селецт Цасе је алтернатива наредби Иф-Тхен-Елсе, која вам омогућава да извршите проверу услова у својим макроима. Основна конструкција наредбе Селецт Цасе је једноставна:
Изаберите Цасе
Случај Ис =
Случај Ис=
Случај Ис=
Крај Изаберите
Са наредбом Селецт Цасе можете извршити многе условне провере. У овом случају, једноставно проверавате да ли је ОК или Цанцел. Погледајте код:
Приватна под радна свеска_БефореЦлосе(Откажи као Боолеан)
„Корак 1: Активирајте оквир за поруке и покрените проверу
Изаберите Цасе МсгБок("Сачувај и затвори?", вбОКЦанцел)
'Корак 2: Притиснуто дугме за отказивање, па откажите затварање
Случај је = вбЦанцел
Откажи = Тачно
„Корак 3: дугме ОК је притиснуто, па сачувајте радну свеску и затворите
Случај Ис = вбОК
АцтивеВоркбоок.Саве
„Корак 4: Затворите изјаву о избору случаја
Крај Изаберите
Енд Суб
У кораку 1 активирате оквир за поруку као проверу услова за наредбу Селецт Цасе. Користите аргумент вбОКЦанцел да бисте осигурали да су дугмад ОК и Цанцел представљена као избор.
У кораку 2, ако је корисник кликнуо на Откажи у пољу за поруку, макро говори Екцел-у да откаже догађај Воркбоок_Цлосе тако што ће проследити Труе логичком вредности Цанцел.
Ако је корисник кликнуо на дугме ОК у оквиру за поруку, корак 3 ступа на снагу. Овде кажете Екцел-у да сачува радну свеску. А пошто нисте подесили Цанцел Боолеан на Тачно, Екцел наставља са затварањем.
У кораку 4, једноставно затворите наредбу Селецт Цасе. Сваки пут када инстанцирате Селецт Цасе, морате га затворити одговарајућим Енд Селецт-ом.
Како користити макро
Да бисте применили овај макро, потребно је да га копирате и налепите у прозор кода догађаја Воркбоок_БефореЦлосе. Постављање макроа тамо омогућава му да се покрене сваки пут када покушате да затворите радну свеску:
Активирајте Висуал Басиц Едитор притиском на Алт+Ф11.
У прозору пројекта пронађите назив свог пројекта/радне свеске и кликните на знак плус поред њега да бисте видели све листове.
Кликните на ову радну свеску.
У падајућој листи Догађај изаберите догађај Пре затварања.
Откуцајте или налепите код у новокреирани модул.
Унесите свој код у догађај Воркбоок БефореЦлосе.