Пренесите аргументе макроима са дугмади и менија помоћу ВБА у Мицрософт Екцелу

Anonim

Пример испод показује како можете да креирате дугмад/меније ЦоммандБар -а који прослеђују један или више аргумената макроу.
пример такође показује како можете да додате нову ставку у мени за пречице Ћелија.

Суб АддЦоммандТоЦеллСхортцутМену () Дим и Ас Интегер, цтрл Ас ЦоммандБарБуттон ДелетеАллЦустомЦонтролс „избришите контроле ако већ постоје“ креирајте нове контроле помоћу Апплицатион.ЦоммандБарс (25) „мени за пречице у ћелији“ додајте обичан тастер командне траке Сет цтрл = .Цонтролс.Адд (мсоЦонтролБуттон,,,, Труе) Са цтрл .БегинГроуп = Труе .Цаптион = "Нови мени1". ФацеИд = 71 .Стате = мсоБуттонУп .Стиле = мсоБуттонИцонАндЦаптион .Таг = "ТЕСТТАГ1" .ОнАцтион = "МиМацроНа ' дугме које прослеђује један стринг аргумент Сет цтрл = .Цонтролс.Адд (мсоЦонтролБуттон,,,, Труе) Са цтрл .БегинГроуп = Фалсе .Цаптион = "Нови мени2". ФацеИд = 72 .Стиле = мсоБуттонИцонАндЦаптион .Таг = "ТЕСТТАГ2" .ОнАцтион = "'МиМацроНаме2" "Нев Мену2" "" "Енд Витх" додавање дугмета које пролази један стринг аргумент Сет цтрл = .Цонтролс.Адд (мсоЦонтролБуттон,,,, Труе) Витх цтрл .БегинГроуп = Фалсе .Цаптион = "Нев Мени3 ".ФацеИд = 73 .Стиле = мсоБуттонИцонАндЦаптион .Таг =" ТЕСТТАГ3 ".ОнАцтион = "'МиМацроНаме2" "" & .Цаптион & "" "' '" Енд Витх "додајте дугме које прослеђује два аргумента, низ и цео број Сет цтрл = .Цонтролс.Адд (мсоЦонтролБуттон,,,, Труе) Са цтрл. БегинГроуп = фалсе. = Ништа Крај Суб Суб ДелетеАллЦустомЦонтролс () 'избришите контроле ако већ постоје Дим и Ас Интегер Фор и = 1 То 4 ДелетеЦустомЦоммандБарЦонтрол "ТЕСТТАГ" & и Нект и Енд Суб Привате Суб ДелетеЦустомЦоммандБарЦонтрол (ЦустомЦонтролТаг Ас Стринг)' брише СВЕ команде ЦоммандБар са Таг = ЦустомЦонтролТаг Он Еррор Ресуме Нект Следи Урадите Апплицатион.ЦоммандБарс.ФиндЦонтрол (,, ЦустомЦонтролТаг, Фалсе). Обриши петљу до Апплицатион.ЦоммандБарс.ФиндЦонтрол (,, _ ЦустомЦонтролТаг, Фалсе) Није ништа укључено Грешка ГоТо 0 Енд Суб 'макро користи тастери на командној траци Суб МиМацроНаме1 () МсгБок "Тхе тиме ис" & Формат (Тиме, "х х: мм: сс ") Енд Суб Суб МиМацроНаме2 (Опционално МсгБокЦаптион Ас Стринг =" УНКНОВН ") МсгБок" Тхе тиме ис "& Формат (Тиме," хх: мм: сс "),, _" Овај макро је покренут од " & МсгБокЦаптион Крај Суб Суб МиМацроНаме3 (МсгБокЦаптион Ас Стринг, ДисплаиВалуе Ас Интегер) МсгБок "Тхе тиме ис" & Формат (Тиме, "хх: мм: сс"),, _ МсгБокЦаптион & "" & ДисплаиВалуе Енд Суб