Висуал Басиц за апликације, скраћено ВБА, је облик Висуал Басиц-а 6 интегрисан у Мицрософт Оффице програме. Кроз кодирање, ВБА вам омогућава да аутоматизујете задатке у Оффице програмима, укључујући Екцел. У неким случајевима можете чак и додати нове функције у Екцел користећи ВБА.

Иако морате да радите са кодом да бисте користили ВБА, то не значи да су ВБА само слова и бројеви. Помоћу ВБА у Екцел-у можете креирати макро који вам омогућава да убаците слике у ћелију или опсег ћелија. Читајте даље да бисте сазнали све о томе!

Како уметнути слику у ћелију користећи ВБА у Екцелу

Да бисте креирали макро за уметање слика у Екцел ћелије користећи ВБА, заправо вам није потребно никакво напредно знање Висуал Басиц-а. Све што треба да урадите је да омогућите алатке за програмере, креирате макро и налепите прави код.

Међутим, ако сте заинтересовани за учење ВБА и писање сопственог кода једног дана, разбили смо ВБА код у трећем одељку. Наравно, такође можете уметните слике у Екцел без употребе ВБА. Али овај чланак говори о томе да се то уради преко ВБА. Идемо на посао!

Да бисте користили ВБА у Екцел-у, потребно је да омогућите алате за програмере у Екцел-у. Ово ће омогућити картицу Програмер на траци, која је подразумевано онемогућена.

  1. Отворите Екцел.
  2. Иди на Филе мени.
  3. Кликните на Опције на дну екрана. Ово ће отворити прозор са опцијама програма Екцел.
  4. У Екцел опцијама идите на Прилагодите траку таб.
  5. Испод Главне картице, проверавати Девелопер.

Сада су алатке за програмере, укључујући приступ ВБА, омогућене за вас. Не морате то да радите сваки пут када желите да користите ВБА у Екцел-у. Алати за програмере ће остати укључени док их не онемогућите.

2. Креирање макроа и уметање кода

Сада је време да пређемо на креирање макроа. Алтернативно, такође бисте могли креирајте дугме помоћу ВБА за овај задатак, али ћемо се држати макроа.

  1. У Екцел-у идите на Девелопер таб.
  2. У Код одељак, изаберите Макрои.
  3. У новом прозору унесите име за свој макро испод Име макроа. Користићемо инсертПхотоМацро.
  4. Кликните Креирај.

Када кликнете на Креирај, отвориће се ВБА прозор и приказати код за ваш макро. Тренутно, код ће се састојати од два реда: А Суб да покренете макро, и ан Енд Суб да се то оконча.

Хајде да додамо неки код овом макроу. Додајте следећи код између два реда:

Дим пхотоНамеАндПатх Као Варијанта
Дим пхото Као Слика
пхотоНамеАндПатх = Апликација. ГетОпенФиленаме (Титле:="Изаберите Пхото доУметните")
Ако пхотоНамеАндПатх = Фалсе Онда Изађи Суб
Комплет фотографија = АцтивеСхеет. Слике. Убаци (име фотографије и путању)
Витх фото
.Лево = АцтивеСхеет. Домет("А1").Лево
.Топ = АцтивеСхеет. Домет("А1").Топ
.Видтх = АцтивеСхеет. Домет("А1").Ширина
.Хеигхт = АцтивеСхеет. Домет("А1").Висина
.Постављање = 1
КрајВитх

Ваш коначни код би требао бити нешто попут доле:

Не морате да бринете о томе да сачувате свој напредак. Свака промена коју направите у ВБА се одмах чува.

Сада је време да видите код на делу.

  1. Затворите прозор ВБА.
  2. Иди на Девелопер картица у Екцел-у.
  3. Изаберите Макрои од Код одељак.
  4. Означите макро који сте управо креирали.
  5. Кликните Трцати.

Сада ће се отворити упит са молбом да лоцирате датотеку слике коју желите да уметнете. Изаберите своју слику, а затим кликните Отвори. Сада би требало да видите своју фотографију у ћелији А1!

Приметите да је уметнута слика смањена да би се уклопила у ћелију А1. Можете да промените ово, као и да промените код да бисте уметнули слику у друге ћелије или чак низ ћелија. У следећем одељку ћемо разложити код и објаснити параметре на раду.

3. Разбијање кода

Да би овај ВБА код радио за вас онако како желите, морате га разумети. Када то урадите, можете да промените код да бисте уметнули фотографије у било коју ћелију било које величине. Проћи ћемо кроз код мало по мало да бисмо га лакше разумели.

Суб инсертПхотоМацро()
Дим пхотоНамеАндПатх Као Варијанта
Дим пхото Као Слика
пхотоНамеАндПатх = Апликација. ГетОпенФиленаме (Титле:="Изаберите Пхото доУметните")
Ако пхотоНамеАндПатх = Фалсе Онда Изађи Суб
Комплет фотографија = АцтивеСхеет. Слике. Убаци (име фотографије и путању)
Витх фото
.Лево = АцтивеСхеет. Домет("А1").Лево
.Топ = АцтивеСхеет. Домет("А1").Топ
.Видтх = АцтивеСхеет. Домет("А1").Ширина
.Хеигхт = АцтивеСхеет. Домет("А1").Висина
.Постављање = 1
КрајВитх
Крај Суб

Када се код покрене, користимо Замутити изјава за одређивање типа променљиве. Овде имамо две варијабле: пхотоНамеАндПатх и фото себе. Прво смо одредили као а Варијанта а ово друго као а Пхото.

Одатле се покреће променљива пхотоНамеАндПатх и отвара апликацију да би сазнала где се налази датотека слике. Ово се ради кроз Апликација. ГетОпенФилеНаме. Тхе Наслов параметар је опциони, а садржај у њему се приказује као име прозора.

Користећи Ако је пхотоНамеАндПатх = Фалсе, изађите из Суб, наводимо да ако је дата неважећа или празна адреса, процес треба прекинути. Међутим, ако се унесе одговарајућа датотека, онда Подесите фотографију = АцтивеСхеет. Слике. Убаци (име фотографије и путању) означава да слику треба поставити као променљиву фотографије коју смо раније дефинисали и да је треба уметнути у активну табелу.

Коначно коришћење Са фотографијом и пет редова који прате њу, ми елаборирамо позиционирање слике. .Лево и .Топ назначити почетне локације, док .Видтх и .Висина означити крајње локације. Ако желите да уметнете слику у друге ћелије или у опсег, онда су ово линије које треба да промените.

.Постављање означава да ли слику треба димензионисати са ћелијама или уметнути у слободном облику. Подешавање на 1 величине ће га са ћелијама.

На крају крајева, ми користимо Завршити и онда Енд Суб да затворите макро. Имајте на уму да можете променити пхотоНамеАндПатх и фото променљиве на било које друго име које желите. Само запамтите да имена буду доследна у целом коду.

Урадите више у Екцел-у уз ВБА

Екцел је заиста одличан алат за организовање и анализу података, али то не значи да је Екцел неспособан када је у питању графика. Иако фотографије и битмапе нису најјача страна Екцел-а, Екцел је и даље савршено способан да их носи.

Иако можете да уметнете слике у Екцел користећи интерфејс као што бисте то урадили у другим Оффице апликацијама, то можете учинити и помоћу ВБА. Помоћу ВБА можете да аутоматизујете овај задатак, па чак и да га упарите са другим задацима да се истовремено извршавају. Могућности са ВБА у Екцел-у су бескрајне.