Примери и водичи за макрое ПоверПоинт ВБА

Ово је потпуни водич за аутоматизацију програма ПоверПоинт помоћу ВБА (Висуал Басиц фор Апплицатионс) макронаредби. Испод ћете пронаћи многе корисне примере.

ВБА ПДФ (бесплатно преузимање)

Преузмите наш бесплатни водич за Мицрософт ПоверПоинт ВБА! Или ВБА водичи за друге Оффице програме!

Преузимање

ПоверПоинт ВБА (Макрои) Водич

Сачувај као презентацију са омогућеним макроима

Презентација са ВБА кодом треба да буде „Сачувај као“ ПоверПоинт презентација са омогућеним макроима (*.пптм)

Омогућите картицу „Девелопер“ на траци

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

Направите ПоверПоинт макро

Ово је једноставан пример ПоверПоинт ВБА макроа:

1234567891011 Суб СавеПресентатионАсПДФ ()Дим пптНаме Ас СтрингДим ПДФНаме Ас Стринг'Сачувајте ПоверПоинт као ПДФпптНаме = АцтивеПресентатион.ФуллНаме'Замијените проширење датотеке ПоверПоинт у имену у ПДФПДФНаме = Лево (пптНаме, ИнСтр (пптНаме, ".")) & "Пдф"АцтивеПресентатион.ЕкпортАсФикедФормат ПДФНаме, 2 'ппФикедФорматТипеПДФ = 2Енд Суб

Активна презентација се чува као ПДФ. Сваки ред кода ради следеће:

  • Креира променљиве за ПоверПоинт назив и ПДФ назив
  • Додељује име активне презентације променљивој пптНаме
  • Креира пуно име ПДФ -а
  • Презентација се чува као ПДФ

ПоверПоинт апликација

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

Да бисте креирали презентацију, користите метод додавања апликације ПоверПоинт.

123 Апплицатион.Пресетатионс.Адд'или без изричите референцеПрезентације.Додати

Отворите нову презентацију

За отварање нове и празне презентације користите методу Додавање збирке Апплицатион.Пресетатионс

1 Презентације.Додати

Отворите постојећу презентацију

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

1 Презентације.Опен ("Моја презентација.пптк")

Горњи код претпоставља да је презентација у истом директоријуму као ПоверПоинт презентација која садржи код.

Отворите и доделите променљивој

Презентацију коју отворите треба да доделите променљивој тако да њоме можете манипулисати према вашим захтевима.

12 Дим ппт Ас ПресентатионПодесите ппт = Презентације.Опен ("Моја презентација.пптк")

Погледајте Активна презентација

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

12 'Одштампајте назив активне презентације у непосредном прозоруДебуг.Принт АцтивеПресентатион.Наме

Сачувај тренутну презентацију

Доња изјава ће сачувати активну презентацију ако је претходно сачувана. Ако није сачувано, од вас ће се затражити дијалог „Сачувај као“.

1 АцтивеПресентатион.Саве

Затворите тренутну презентацију

Изјава испод затвара активну презентацију чак и ако није сачувана након последњег уређивања.

1 АцтивеПресентатион.Цлосе

Корисне референце

Доделите постојећу презентацију (по имену) променљивој

12 Дим миПресентатионБиНаме Ас ПресентатионПодеси миПресентатионБиНаме = Апплицатион.Пресетатионс ("Моја презентација")

Доделите активни слајд променљивој

12 Затамни струјуСлиде Ас СлидеПодесите цуррентСлиде = Апплицатион.АцтивеВиндов.Виев.Слиде

Доделите слајд према индексу променљивој

12 Затамните миСлиде као СлидеПостави миСлиде = АцтивеПресентатион.Слидес (11)

Цоунт Број слајдова

12 Дим слидеЦоунт Ас ЛонгслидеЦоунт = АцтивеПресентатион.Слидес.Цоунт

Добијте индекс слајда Број тренутног слајда

12 Затамните цуррентСлидеИндек као слајдцуррентСлидеИндек = Апплицатион.АцтивеВиндов.Виев.Слиде.СлидеИндек

Додајте празан слајд на крај пројекције слајдова

1234567 Дим слидеЦоунт Ас ЛонгЗатамните невСлиде као СлидеслидеЦоунт = АцтивеПресентатион.Слидес.ЦоунтПостави невСлиде = АцтивеПресентатион.Слидес.Адд (слидеЦоунт + 1, 12)'или као ппЛаиоутБланк = 12Постави невСлиде = АцтивеПресентатион.Слидес.Адд (слидеЦоунт + 1, ппЛаиоутБланк)

Додајте слајд после тренутног слајда

12345 Затамните новиСлиде Ас СлидеЗатамните цуррентСлидеИндек као ИнтегерцуррентСлидеИндек = Апплицатион.АцтивеВиндов.Виев.Слиде.СлидеИндекПостави невСлиде = АцтивеПресентатион.Слидес.Адд (цуррентСлидеИндек, ппЛаиоутБланк)

Избришите слајд

1234 Затамните цуррентСлидеИндек као ИнтегерцуррентСлидеИндек = Апплицатион.АцтивеВиндов.Виев.Слиде.СлидеИндекАцтивеПресентатион.Слидес (цуррентСлидеИндек) .Делете

Идите на одређени слајд

12 'Ово ће вас одвести на слајд број 4Апплицатион.АцтивеВиндов.Виев.ГотоСлиде (4)

Премести слајд

Слајд можете да преместите са старог на нови положај

123456 'Пређите са слајда 3 на први слајдЗатамни олдПоситион као цео број, затамни невПоситион као цео бројолдПоситион = 3невПоситион = 1АцтивеПресентатион.Слидес (олдПоситион) .МовеТо тоПос: = невПоситион

Прођите кроз све слајдове

Са сваким слајдом можете учинити нешто или проћи кроз све слајдове како бисте пронашли неколико слајдова и учинити нешто око коришћења кода;

123456 Затамните миСлиде као СлидеЗа сваки миСлиде у АцтивеПресентатион.Слидес„Учините нешто са тренутним слајдом наведеним у променљивој„ миСлиде “'Дебуг.Принт миСлиде.НамеСледећи слајд

Прођите кроз све облике активног слајда

Снага програма ПоверПоинт може се остварити коришћењем „Облици“. Доњи код се провлачи кроз све облике на тренутном слајду, тако да можете њима манипулисати како желите;

123456789 Затамни струју Слајд као слајдДим схп као ОбликПодесите цуррентСлиде = Апплицатион.АцтивеВиндов.Виев.СлидеЗа сваки схп У цуррентСлиде.Схапес'Учините нешто са тренутним обликом наведеним у променљивој' схп ''На пример, одштампајте назив облика у непосредном прозоруДебуг.Принт схп.НамеСледећи схп

Прелистајте све облике у свим слајдовима

Можете проћи кроз све облике у презентацији додавањем петље да бисте прошли кроз све слајдове.

123456789 Затамни струју Слајд као слајдДим схп као ОбликЗа сваки цуррентСлиде у АцтивеПресентатион.СлидесЗа сваки схп У цуррентСлиде.Схапес'Учините нешто са тренутним обликом наведеним у променљивој' схп 'Дебуг.Принт схп.НамеСледећи схпСледећи тренутни слајд

Прођите кроз све текстуалне оквире активног слајда

Оквири за текст су најчешће коришћени облик у ПоверПоинт презентацијама. Можете проћи кроз све текстуалне оквире додавањем поља за потврду „Врста облика.“ ТекБокови имају облик облика дефинисан као ВБА константа мсоТектБок (нумеричка вредност константе је 17)

1234567891011 Затамни струју Слајд као слајдДим схп као ОбликПодесите цуррентСлиде = Апплицатион.АцтивеВиндов.Виев.СлидеЗа сваки схп У цуррентСлиде.Схапес'Проверите да ли је тип облика мсоТектБокАко је схп.Типе = 17 Тада је 'мсоТектБок = 17'Одштампајте текст у оквиру за текстДебуг.Принт схп.ТектФраме2.ТектРанге.ТектКрај АкоСледећи схп

Прелистајте све текстуалне оквире у свим слајдовима

Опет, можете проћи кроз све оквире за текст у презентацији додавањем петље за преглед свих слајдова.

1234567891011 Затамни струјуСлиде као Слиде Дим схп као СхапеЗа сваки цуррентСлиде у АцтивеПресентатион.СлидесЗа сваки схп У цуррентСлиде.Схапес'Проверите да ли је тип облика мсоТектБокАко је схп.Типе = 17 Тада је 'мсоТектБок = 17'Учините нешто са ТектБок -ом наведеним у променљивој' схп 'Дебуг.Принт схп.ТектФраме2.ТектРанге.ТектКрај АкоСледећи схпСледећи тренутни слајд

Копирајте изабране слајдове у нову ППТ презентацију

Да бисте копирали одређене слајдове у нову презентацију, прво изаберите жељене слајдове у постојећој презентацији, а затим покрените доњи код;

123456789101112131415161718 Дим цуррентПресентатион ас ПресентатионЗатамни струју Слајд као слајдЗатамните нову презентацију као презентацију'Сачувај референцу на тренутну презентацијуПодесите цуррентПресентатион = Апплицатион.АцтивеПресентатион'Сачувај референцу на тренутни слајдПодесите цуррентСлиде = Апплицатион.АцтивеВиндов.Виев.Слиде'Додајте нову презентацију и сачувајте је као референцуПоставите НевПресентатион = Апплицатион.Пресетатионс.Адд'Копирајте изабране слајдовеСелецтион.Цопи'Залепите у нову презентацијуНевПресентатион.Слидес.Пасте

Копирајте активни слајд на крај активне презентације

12345 'Копирај тренутни слајдАпплицатион.АцтивеВиндов.Виев.Слиде.Цопи'Залепи на крајуАцтивеПресентатион.Слидес.Пасте

Корисни примери ПоверПоинт макроа

Ево неколико корисних примера макроа који показују како се обављају задаци. Они ће такође показати горе описане концепте.

Промените слајд током презентације

1234567891011 Суб ЦхангеСлидеДурингСлидеСхов ()Затамните СлидеИндек као цео бројДим СлидеИндекПревиоус Ас Интегер'Промените тренутни слајд на изабрани слајд 4 током пројекције слајдоваСлидеИндек = 4'Индекс тренутног прозора дијапројекције је 1 у колекцији СлидеСховВиндовсСлидеИндекПревиоус = СлидеСховВиндовс (1) .Виев.ЦуррентСховПоситионСлидеСховВиндовс (1) .Виев.ГотоСлиде СлидеИндекЕнд Суб

Промените фонт на свим слајдовима у свим оквирима за текст

123456789101112131415 Суб ЦхангеФонтОнАллСлидес ()Затамни миСлиде Као слајдДим схп Ас Схапе'Промените величину фонта на свим слајдовимаЗа сваки миСлиде у АцтивеПресентатион.СлидесЗа сваки схп У миСлиде.СхапесАко је схп.Типе = 17 Тада је 'мсоТектБок = 17'Промените величину слова у 24схп.ТектФраме.ТектРанге.Фонт.Сизе = 24Крај АкоСледећи схпСледећи миСлидеЕнд Суб

Промените велика слова из горњих у нормалне у свим текстуалним оквирима

123456789101112131415 Суб ЦхангеЦасеФромУппертоНормал ()Затамни миСлиде Као слајдДим схп Ас Схапе'За све слајдове промените из великих слова у нормална словаЗа сваки миСлиде у АцтивеПресентатион.СлидесЗа сваки схп У миСлиде.СхапесАко је схп.Типе = 17 Тада је 'мсоТектБок = 17'Промијените велика слова у нормална словасхп.ТектФраме2.ТектРанге.Фонт.Аллцапс = ФалсеКрај АкоСледећи схпСледећи миСлидеЕнд Суб

Пребацивање између великих и горњих слова у свим текстуалним оквирима

12345678910111213141516 Суб ТогглеЦасеБетвеенУпперАндНормал ()Затамни миСлиде Као слајдДим схп Ас Схапе'Пребацивање између великих слова и нормалних слова за све слајдовеЗа сваки миСлиде у АцтивеПресентатион.СлидесЗа сваки схп У миСлиде.СхапесАко је схп.Типе = 17 Тада је 'мсоТектБок = 17'Пребацивање између великих и великих словасхп.ТектФраме2.ТектРанге.Фонт.Аллцапс = _Нот схп.ТектФраме2.ТектРанге.Фонт.АллцапсКрај АкоСледећи схпСледећи миСлидеЕнд Суб

Уклоните Подвучено из Десцендера

У типографији, силазни део је део слова који се протеже испод основне линије фонта. У већини фонтова, спуштачи су резервисани за мала слова као што су г, ј, к, п, и, а понекад и ф.

Када подвучете текст, не изгледа лепо испод спуштача. Ево кода за уклањање подцртавања са свих таквих знакова г, ј, п, к и и у целој презентацији.

1234567891011121314151617181920212223242526 Суб РемовеУндерлинеФромДесцендерс ()Затамни миСлиде Као слајдДим схп Ас СхапеДим десцендерс_лист Ас СтрингЗатамни израз Ас СтрингДим к Ас Лонг'Уклоните подвлаке из Десцендерсадесцендерс_лист = "гјпки"За сваки миСлиде у АцтивеПресентатион.СлидесЗа сваки схп У миСлиде.СхапесАко је схп.Типе = 17 Тада је 'мсоТектБок = 17'Уклони подцртавање са слова "гјпки"Са схп.ТектФраме.ТектРангеизраз = .ТекстЗа к = 1 То Лен (. Текст)Ако је ИнСтр (десцендерс_лист, Мид $ (израз, к, 1))> 0 Затим.Знакови (к, 1) .Фонт.Ундерлине = НетачноКрај АкоДаље кЗавршитиКрај АкоСледећи схпСледећи миСлидеЕнд Суб

Уклоните анимације са свих слајдова

Користите доњи код да бисте уклонили све анимације постављене у презентацији.

123456789101112 Суб РемовеАниматионсФромАллСлидес ()Затамни миСлиде Као слајдДим и Ас ЛонгЗа сваки миСлиде у АцтивеПресентатион.СлидесЗа и = миСлиде.ТимеЛине.МаинСекуенце.Цоунт То 1 Степ -1'Уклони сваку анимацијумиСлиде.ТимеЛине.МаинСекуенце.Итем (и) .ДелетеЗатим самСледећи миСлидеЕнд Суб

Сачувај презентацију као ПДФ

Активну презентацију можете лако сачувати у ПДФ формату.

1234567891011 Суб СавеПресентатионАсПДФ ()Дим пптНаме Ас СтрингДим ПДФНаме Ас Стринг'Сачувајте ПоверПоинт као ПДФпптНаме = АцтивеПресентатион.ФуллНаме'Замијените проширење датотеке ПоверПоинт у имену у ПДФПДФНаме = Лево (пптНаме, ИнСтр (пптНаме, ".")) & "Пдф"АцтивеПресентатион.ЕкпортАсФикедФормат ПДФНаме, 2 'ппФикедФорматТипеПДФ = 2Енд Суб

Пронађите и замените текст

Текст можете пронаћи и заменити у свим оквирима за текст свих слајдова. Након прве инстанце текста који желите да пронађете (дефинисано са финдВхат) потребно је да прођете кроз наредбу Финд да бисте пронашли друге инстанце, ако их има.

123456789101112131415161718192021222324252627282930313233 Суб ФиндАндРеплацеТект ()Затамни миСлиде Као слајдДим схп Ас СхапеДим финдВхат Ас СтрингДим реплацеВитх Ас СтрингЗатамните СхпТкт као ТектРангеЗатамните ТмпТкт као ТектРангефиндВхат = "шакал"реплацеВитх = "лисица"'Пронађи и пронађи и замениЗа сваки миСлиде у АцтивеПресентатион.СлидесЗа сваки схп У миСлиде.СхапесАко је схп.Типе = 17 Тада је 'мсоТектБок = 17Подесите СхпТкт = схп.ТектФраме.ТектРанге'Пронађи прву инстанцу речи' Пронађи '(ако постоји)Подесите ТмпТкт = СхпТкт.Реплаце (финдВхат, _Замени шта: = замени са, _ВхолеВордс: = Тачно)„Пронађите додатне инстанце речи„ Пронађи “(ако постоји)Радити док није ТмпТкт није ништаПодеси СхпТкт = СхпТкт.Царацтерс (ТмпТкт.Старт + ТмпТкт.Ленгтх, СхпТкт.Ленгтх)Подесите ТмпТкт = СхпТкт.Реплаце (финдВхат, _Замени шта: = замени са, _ВхолеВордс: = Тачно)ЛоопКрај АкоСледећи схпСледећи миСлидеЕнд Суб

Извезите слајд као слику

Тренутни слајд (или било који други слајд) можете извести као ПНГ или ЈПГ (ЈПЕГ) или БМП слику.

1234567891011121314 Суб ЕкпортСлидеАсИмаге ()Дим имагеТипе Ас СтрингДим пптНаме Ас СтрингДим имагеНаме Ас СтрингЗатамни миСлиде Као слајд'Извезите тренутни слајд у сликуимагеТипе = "пнг" 'или јпг или бмппптНаме = АцтивеПресентатион.ФуллНамеимагеНаме = Лево (пптНаме, ИнСтр (пптНаме, ".")) & имагеТипеПоставите миСлиде = Апплицатион.АцтивеВиндов.Виев.слидемиСлиде.Екпорт имагеНаме, имагеТипеЕнд Суб

Промените величину слике да покрије цео слајд

1234567891011121314151617181920212223242526 Суб РесизеИмагеТоЦоверФуллСлиде ()Затамни миСлиде Као слајдДим схп Ас Схапе'Промијените величину слике на пуну величину слајда'Промените висину и ширину првог облика на тренутном слајду'да одговарају димензијама клизачаПоставите миСлиде = Апплицатион.АцтивеВиндов.Виев.слидеПостави схп = миСлиде.Схапес (1)'''' Замените два горња стања са'' следећа изјава ако желите'' проширите тренутно изабрани облик'' ће дати грешку ако ништа није изабрано'Сет схп = АцтивеВиндов.Селецтион.СхапеРанге (1)Са шп.ЛоцкАспецтРатио = Нетачно.Хеигхт = АцтивеПресентатион.ПагеСетуп.СлидеХеигхт.Видтх = АцтивеПресентатион.ПагеСетуп.СлидеВидтх.Лево = 0.Топ = 0ЗавршитиЕнд Суб

Изађите из свих покренутих дијапројекција

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

1234567 Суб ЕкитАллРуннингСлидеСховс ()Учините Док СлидеСховВиндовс.Цоунт> 0СлидеСховВиндовс (1) .Виев.ЕкитЛоопЕнд Суб

Аутоматизација програма ПоверПоинт из програма Екцел

Такође се можете повезати са ПоверПоинтом путем других апликација (попут Екцел -а и Ворд -а). Као први корак, морате се обратити инстанци ПоверПоинт.

Постоје два начина за то - рано везивање и касно везивање .

Отворите ПоверПоинт - Рано везивање

У „Раном повезивању“ морате изричито поставити референцу на „Библиотеку објеката Мицрософт ПоверПоинт 16“ (за МС Оффице 2022) у ВБЕ-у (Уређивач за Висуал Басиц) користећи опцију Алатке-> Референце.

123 'Рано везивањеЗатамните пптАпп као апликацијуПодесите пптАпп = Нова ПоверПоинт.Апплицатион

Отворите ПоверПоинт - Касно везивање

У „Лате Биндинг“ варијабла апликације је декларисана као објекат и ВБА енгине се повезује са исправном апликацијом у време извођења.

123 'Касно везивањеЗатамните пптАпп као објекатПодесите пптАпп = ЦреатеОбјецт ("ПоверПоинт.Апплицатион")

Учините апликацију видљивом

Након што поставите референцу на апликацију ПовперПоинт, можда ћете морати да је учините видљивом.

1 пптАпп.Висибле = Тачно

Маниплулате ПоверПоинт

Можете користити све методе за управљање презентацијама из ПоверПоинта, горе описаног у Екцелу, само додавањем референце на ПоверПоинт коју сте горе створили.

На пример

1 Презентације.Опен ("Моја презентација.пптк")

мора се користити овако

1 пптАпп .Пресетатионс.Опен ("Моја презентација.пптк")

Затворите апликацију

Када завршите оно што сте хтели да урадите са ПоверПоинт апликацијом, морате је затворити и пустити референцу.

12 пптАпп.КуитПодесите пптАпп = Ништа

Копирајте из програма Екцел у ПоверПоинт

Овај код ће копирати опсег из програма Екцел у ПоверПоинт:

Белешка: Задржано је што је могуће једноставније како би се показало како се распон из програма Екцел може копирати у ПоверПоинт помоћу ВБА.

12345678910111213141516171819 Суб цопиРангеТоПресентатион ()„Отворите нову инстанцу ПоверПоинтПодесите пптАпп = ЦреатеОбјецт ("ПоверПоинт.Апплицатион")Са пптАпп'Направите нову презентацијуПодесите ппт = .Пресентатион.Адд'Додајте празан слајдПоставите невСлиде = ппт.Слидес.Адд (1, 12) 'ппЛаиоутБланк = 12'Копирај опсег из активног листа у ЕкцелуАцтивеСхеет.Ранге ("А1: Е10"). Копирај'Залепи у Поверпоинт као сликуневСлиде.Схапес.ПастеСпециал ДатаТипе: = 2 '2 = ппПастеЕнханцедМетафиле'Пребаци на ПоверПоинт.АктивиратиЗавршитиЕнд Суб

Често постављана питања о ПоверПоинт ВБА

Шта су макрои у ППТ -у?

Макро је општи термин који се односи на скуп програмских инструкција које аутоматизују задатке. ПоверПоинт (ППТ) макрои аутоматизују задатке у ПоверПоинту користећи програмски језик ВБА.

Како да користим ВБА у ПоверПоинту?

Да бисте користили ВБА у ПоверПоинту, отворите ВБА Едитор (АЛТ + Ф11 или Девелопер> Висуал Басиц).

Како да направим макро у ПоверПоинту?

1. Отворите ВБА Едитор (АЛТ + Ф11 или Девелопер> Висуал Басиц)
2. Идите на Уметни> Модул да бисте креирали кодни модул
3. Откуцајте „Суб ХеллоВорлд“ и притисните Ентер
4. Између редова „Суб ХеллоВорлд“ и „Енд Суб“ откуцајте „МсгБок„ Хелло Ворлд! “
5. Направили сте макро!
6. Сада притисните „Ф5“ да бисте покренули макро

Написала: Винамра Цхандра

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave