Чӣ тавр иловаи шахсии худро барои Microsoft Excel эҷод кардан мумкин аст

Ҳатто агар шумо намедонед, ки чӣ тавр барномарезӣ кунед, бисёр ҷойҳо (китобҳо, вебсайтҳо, форумҳо) мавҷуданд, ки дар он шумо метавонед коди тайёри VBA-ро барои шумораи зиёди вазифаҳои маъмулӣ дар Excel пайдо кунед. Дар таҷрибаи ман, аксари корбарон дер ё зуд коллексияи шахсии макросҳои худро ҷамъ мекунанд, то равандҳои муқаррариро автоматӣ кунанд, хоҳ он формулаҳоро ба арзишҳо тарҷума кунад, хоҳ ҷамъбаст дар калимаҳо бошад, хоҳ ҷамъбасти чашмакҳо аз рӯи ранг. Ва дар ин ҷо мушкилот ба миён меояд - рамзи макро дар Visual Basic бояд дар ҷое нигоҳ дошта шавад, то баъдтар дар кор истифода шавад.

Варианти осонтарин ин захира кардани рамзи макросро мустақиман дар файли корӣ тавассути рафтан ба муҳаррири Visual Basic бо истифода аз миёнабурҳои клавиатура мебошад. Alt+F11 ва илова кардани модули нави холӣ тавассути меню Ворид - Модул:

Бо вуҷуди ин, дар ин усул як қатор камбудиҳо мавҷуданд:

  • Агар шумораи зиёди файлҳои корӣ вуҷуд дошта бошанд ва дар ҳама ҷо макрос лозим бошад, масалан макрос барои табдил додани формулаҳо ба арзишҳо, шумо бояд кодро нусхабардорӣ кунед. дар хар китоб.
  • Набояд фаромӯш кард файлро дар формати макро-фаъол захира кунед (xlsm) ё дар формати китобҳои дуӣ (xlsb).
  • Ҳангоми кушодани чунин файл ҳифзи макро ҳар дафъа огоҳӣ медиҳад, ки бояд эътироф карда шавад (хуб ё муҳофизатро комилан ғайрифаъол кунед, ки ин на ҳамеша матлуб аст).

Як ҳалли шево бештар эҷод хоҳад буд иловаи шахсии шумо (Excel Add-in) - файли алоҳидаи формати махсус (xlam), ки дорои ҳама макросҳои "дӯстдоштаи" шумо мебошад. Афзалиятҳои ин равиш:

  • Ин кофӣ хоҳад буд иловаро як маротиба пайваст кунед дар Excel - ва шумо метавонед расмиёти VBA ва функсияҳои онро дар ҳама гуна файли ин компютер истифода баред. Аз нав захира кардани файлҳои кории шумо дар xlsm- ва форматҳои xlsb, аз ин рӯ, талаб карда намешавад, зеро. рамзи сарчашма на дар онҳо нигоҳ дошта мешавад, балки дар файли иловашуда.
  • ҳимоя макросҳо низ шуморо ташвиш намедиҳад. Иловаҳо, аз рӯи таъриф, сарчашмаҳои боэътимод мебошанд.
  • карда метавонад ҷадвали алоҳида дар лентаи Excel бо тугмаҳои хуб барои иҷро кардани макросҳои иловагӣ.
  • Илова файли алоҳида аст. Ӯ осон гузаронидан аз компютер ба компютер, онро бо ҳамкорон мубодила кунед ё ҳатто фурӯшед 😉

Биёед тамоми раванди эҷоди иловаи Microsoft Excel-и худро зина ба зина гузаронем.

Қадами 1. Файли иловагиро эҷод кунед

Microsoft Excel-ро бо китоби холии корӣ кушоед ва онро бо ягон номи мувофиқ захира кунед (масалан MyExcelAddin) дар формати замима бо фармон Файл - Ҳамчун захира кунед ё калидҳо F12, муайян кардани навъи файл Иловаи Excel:

Лутфан таваҷҷӯҳ намоед, ки Excel ба таври нобаёнӣ замимаҳоеро дар ҷузвдони C:UsersYour_nameAppDataRoamingMicrosoftAddIns нигоҳ медорад, аммо дар асл шумо метавонед ягон ҷузвдони дигареро, ки барои шумо қулай аст, муайян кунед.

Қадами 2. Мо иловаи сохташударо пайваст мекунем

Акнун замимаеро, ки мо дар қадами охирин сохтаем MyExcelAddin бояд ба Excel пайваст карда шавад. Барои ин, ба меню гузаред Файл - Имконот - Иловаҳо (Файл — Интихоб — Иловаҳо), тугмаро пахш кунед дар бораи (Бирав) дар поёни тиреза. Дар равзанаи кушодашуда тугмаро пахш кунед Шарҳи (Муборак) ва ҷойгиршавии файли иловагии моро муайян кунед.

Агар шумо ҳама чизро дуруст карда бошед, пас мо MyExcelAddin бояд дар рӯйхати иловаҳои дастрас пайдо шавад:

Қадами 3. Иловаи макросҳо ба замима

Иловаи мо ба Excel пайваст аст ва бомуваффақият кор мекунад, аммо дар он то ҳол ягон макрос мавҷуд нест. Биёед онро пур кунем. Барои ин муҳаррири Visual Basic-ро бо миёнабури клавиатура кушоед Alt+F11 ё бо тугма Visual Basic ҷадвали таҳиякунанда (Таҳиягар). Агар ҷадвалҳо таҳиякунанда намоён нест, он метавонад тавассути намоиш дода шавад Файл - Имконот - Танзими лента (Файл - Интихоб - Тасмаи фармоишӣ).

Дар кунҷи чапи болоии муҳаррир бояд тиреза мавҷуд бошад Лоиҳаи (агар он намоён набошад, онро тавассути меню фаъол кунед Намоиш — Explorer Project):

Дар ин равзана ҳамаи китобҳои кории кушода ва замимаҳои Microsoft Excel, аз ҷумла мо, намоиш дода мешаванд. VBAProject (MyExcelAddin.xlam) Онро бо муш интихоб кунед ва тавассути меню ба он модули нав илова кунед Ворид - Модул. Дар ин модул мо рамзи VBA-и макросҳои иловагии худро нигоҳ медорем.

Шумо метавонед рамзро аз сифр ворид кунед (агар шумо донед, ки чӣ тавр барномарезӣ кунед) ё онро аз ҷои тайёр нусхабардорӣ кунед (ки ин хеле осонтар аст). Биёед, барои санҷиш рамзи макроси оддӣ, вале муфидро ба модули холии иловашуда ворид кунем:

Пас аз ворид кардани код, пахш кардани тугмаи захира (дискета) дар кунҷи чапи болоиро фаромӯш накунед.

Макроси мо Формулаҳо барои арзишҳо, тавре ки шумо метавонед ба осонӣ тасаввур кунед, формулаҳоро ба арзишҳо дар диапазони пешакӣ интихобшуда табдил медиҳад. Баъзан ин макросҳо низ номида мешаванд тартиботи. Барои иҷро кардани он, шумо бояд чашмакҳоро бо формулаҳо интихоб кунед ва қуттии муколамаи махсусро кушоед Макрос аз ҷадвал таҳиякунанда (Таҳиягар — Макрос) ё миёнабури клавиатура Alt+F8. Одатан, ин равзана макросҳои дастрасро аз ҳамаи китобҳои кории кушода нишон медиҳад, аммо дар ин ҷо макросҳои иловашуда намоён нестанд. Бо вуҷуди ин, мо метавонем номи тартиби худро дар майдон ворид кунем номи макрос (Номи макрос)ва он гоҳ тугмаро пахш кунед давидан (давидан) - ва макроси мо кор хоҳад кард:

    

Дар ин ҷо шумо инчунин метавонед як миёнабури клавиатура таъин кунед, то макросро зуд оғоз кунед - тугма барои ин масъул аст параметрҳо (Интихобҳо) дар равзанаи пешина Макро:

Ҳангоми таъин кардани калидҳо, дар хотир доред, ки онҳо ҳассос ба ҳарф ва тарҳбандии клавиатура мебошанд. Пас, агар шумо таъин комбинатсияи монанди Ctrl+Й, пас, дар асл, дар оянда шумо бояд боварӣ ҳосил кунед, ки шумо тарҳро фаъол кардаед ва ба таври иловагӣ пахш кунед Shiftбарои гирифтани харфи калон.

Барои роҳат, мо инчунин метавонем тугмаи макроси худро ба панели асбобҳои дастрасии зуд дар кунҷи чапи болоии равзана илова кунем. Барои ин, интихоб кунед Файл - Интихоб - Панели дастрасии зуд (Файл — Интихоб — Панели асбобҳои дастрасии зудро танзим кунед), ва он гоҳ дар рӯйхати афтанда дар болои тиреза интихоб кунед Макрос. Пас аз он макроси мо Формулаҳо барои арзишҳо бо тугма дар панел гузоштан мумкин аст илова кардан (Илова кардан) ва нишонаеро барои он бо тугма интихоб кунед иваз (Таҳрир):

Қадами 4. Илова кардани функсияҳо ба замима

аммо макропроцедурхо, ҳастанд макросҳои функсия ё тавре ки онҳо номида мешаванд UDF (Функсияи муайяншудаи корбар = функсияи муайянкунандаи корбар). Биёед дар иловаи мо як модули алоҳида эҷод кунем (фармони меню Ворид - Модул) ва рамзи функсияи зеринро дар он ҷо гузоред:

Фаҳмидани он осон аст, ки ин функсия барои гирифтани андоз аз арзиши иловашуда аз маблағи андоз аз арзиши иловашуда лозим аст. Албатта, биномияи Нютон нест, аммо он барои мо ҳамчун намуна барои нишон додани принсипҳои асосӣ кӯмак хоҳад кард.

Дар хотир доред, ки синтаксиси функсия аз процедура фарқ мекунад:

  • сохтмон истифода мешавад Функсия…. Функсияи хотимавӣ ба ҷои Зер ... Охири зер
  • пас аз номи функсия, аргументҳои он дар қавс нишон дода мешаванд
  • дар ҷисми функсия ҳисобҳои зарурӣ иҷро карда мешаванд ва баъд натиҷа ба тағирёбанда бо номи функсия таъин карда мешавад.

Инчунин дар хотир доред, ки ин функсия лозим нест ва ба воситаи қуттии муколама иҷро кардани мисли макросҳои қаблӣ ғайриимкон аст Макрос ва тугма давидан. Чунин функсияи макрос бояд ҳамчун вазифаи стандартии варақаи корӣ истифода шавад (SUM, АГАР, VLOOKUP...), яъне танҳо дар ягон ячейка ворид кунед ва арзиши маблағро бо ААИ ҳамчун аргумент нишон диҳед:

… ё тавассути қуттии муколамаи стандартӣ барои ворид кардани функсия ворид кунед (тугма fx дар сатри формула), интихоби категория Корбар муайян карда шудааст (Истифодабаранда муайян карда шудааст):

Ягона лаҳзаи ногувор дар ин ҷо мавҷуд набудани тавсифи муқаррарии функсия дар поёни тиреза аст. Барои илова кардани он шумо бояд амалҳои зеринро иҷро кунед:

  1. Таҳрири Visual Basic-ро бо миёнабури клавиатура кушоед Alt+F11
  2. Иловаро дар панели Лоиҳа интихоб кунед ва тугмаро пахш кунед F2Барои кушодани равзанаи браузери объект
  3. Лоиҳаи иловагии худро аз рӯйхати афтанда дар болои тиреза интихоб кунед
  4. Функсияи пайдошударо бо тугмаи рост клик кунед ва фармонро интихоб кунед Хусусиятҳо.
  5. Тавсифи функсияро дар равзана ворид кунед Тавсифи
  6. Файли иловагиро захира кунед ва Excel-ро аз нав оғоз кунед.

Пас аз бозоғозӣ, функсия бояд тавсиферо, ки мо ворид кардем, нишон диҳад:

Қадами 5. Дар интерфейс ҷадвали иловагиро эҷод кунед

Ниҳоят, ҳарчанд ҳатмӣ нест, аммо ламси гуворо эҷоди ҷадвали алоҳида бо тугма барои иҷро кардани макроси мо мебошад, ки пас аз пайваст кардани иловаи мо дар интерфейси Excel пайдо мешавад.

Маълумот дар бораи ҷадвалҳо, ки ба таври нобаёнӣ намоиш дода мешаванд, дар дохили китоб мавҷуд аст ва бояд дар коди махсуси XML формат карда шаванд. Роҳи осонтарини навиштан ва таҳрир кардани чунин код бо ёрии барномаҳои махсус - муҳаррирони XML мебошад. Яке аз қулайтарин (ва ройгон) барномаи Максим Новиков мебошад Муҳаррири Ribbon XML.

Алгоритми кор бо он чунин аст:

  1. Ҳама равзанаҳои Excel-ро пӯшед, то ҳангоми таҳрир кардани коди иловагии XML ягон ихтилофи файл вуҷуд надошта бошад.
  2. Барномаи Ribbon XML Editor-ро оғоз кунед ва дар он файли MyExcelAddin.xlam-и моро кушоед.
  3. Бо тугма ҷадвалбандиҳоро дар кунҷи чапи болои, пораи кодро барои ҷадвали нав илова кунед:
  4. Шумо бояд иқтибосҳои холӣ гузоред id ҷадвал ва гурӯҳи мо (ҳар гуна идентификаторҳои беназир) ва дар нархнома - номҳои ҷадвали мо ва як гурӯҳи тугмаҳо дар он:
  5. Бо тугма тугма дар панели чап, рамзи холӣ барои тугма илова кунед ва ба он тегҳо илова кунед:

    — нишона матни рӯи тугма аст

    — imageMso — ин номи шартии тасвири тугмача аст. Ман як тасвири тугмаи сурхро бо номи AnimationCustomAddExitDialog истифода кардам. Номҳои ҳамаи тугмаҳои дастрасро (ва чандсадтои онҳо вуҷуд доранд!) дар шумораи зиёди сайтҳои Интернет пайдо кардан мумкин аст, агар шумо калимаҳои калидии "imageMso"-ро ҷустуҷӯ кунед. Барои шурӯъкунандагон, шумо метавонед ба ин ҷо равед.

    - onAction - ин аст номи тартиби бозпас занг - макроси кӯтоҳи махсус, ки макроси асосии моро иҷро мекунад Формулаҳо барои арзишҳо. Шумо метавонед ин тартибро ҳар чизе ки мехоҳед, даъват кунед. Мо онро каме дертар илова мекунем.

  6. Шумо метавонед дурустии ҳама корҳоро бо истифода аз тугма бо аломати сабз дар болои панели асбобҳо тафтиш кунед. Дар ҳамон ҷо тугмаро бо диски нарм пахш кунед, то ҳамаи тағиротҳоро захира кунед.
  7. Муҳаррири Ribbon XML-ро пӯшед
  8. Excel-ро кушоед, ба муҳаррири Visual Basic гузаред ва ба макроси мо тартиби бозпас зангро илова кунед Формулаҳоро бикушедто он макроси асосии моро барои иваз кардани формулаҳо бо арзишҳо иҷро кунад.
  9. Мо тағиротро захира мекунем ва ба Excel бармегардем, натиҷаро тафтиш мекунем:

Ин ҳама аст - замима барои истифода омода аст. Онро бо расмиёти худ ва функсияҳои худ пур кунед, тугмаҳои зебо илова кунед - ва истифодаи макросҳо дар кори худ хеле осонтар мешавад.

  • Макросҳо чист, чӣ тавр онҳоро дар кори худ истифода бурдан мумкин аст, дар Visual Basic коди макросро аз куҷо гирифтан мумкин аст.
  • Ҳангоми кушодани китоби корӣ дар Excel чӣ гуна экрани лаппишро сохтан мумкин аст
  • Макро-китоби шахсӣ чист ва чӣ тавр истифода бурдани он

Дин ва мазҳаб