Страницы: 1
RSS
Как сохранить макрос навсегда?
 
Доброго времени суток!
Подскажите пожалуйста, как сохранить макрос в экселе навсегда? Может я некорректно задаю вопрос, но мало ли так можно.
В этой темке ссылка вычитала "Кнопка на панели быстрого" и попробовала изобразить у себя похожее (во вложении)

Макрос работал ровно до тех пор, пока не закрыла книгу :-) Открываю новую, в оформлении остается все то же самое, только макрос больше не активен... А я уже хотела все любимые макросы сюда понадобавлять....
Может кто знает, какое решение этой проблемы есть? P.S. надстройки делать не умею... Перерыла весь интернет - ничего для чайников не нашла.

Благодарю.
Изменено: Rochas - 25.11.2014 15:48:58
 
Цитата
Rochas пишет: Перерыла весь интернет
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Я читала эту тему, но когда дело дошло до кнопочек, застряла. Значит решение - только надстройка?
Я видела в какой-то теме Николай писал что инструкции по работе с XML пока еще нет...
Изменено: Rochas - 25.11.2014 16:21:02
 
Rochas, пишите макрос в "персональной книге макросов", из неё привязываете макрос к кнопке. Это конечно круто "навегда", т.к. умер файл или умер хард и кончилось навсегда...

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Rochas пишет:
что инструкции по работе с XML
Ну как же нет...MSDN полон инструкций. Плюс по ссылке выше я наглядно писал, как сделать надстройку не только через XML, но и кодами. Там и файл с кодом есть и описание что для чего...Каждая строка кода с комментарием - не думаю, что так уж заумно я там все написал.
По факту остается лишь скачать файл и добавлять блоки:
Код
With .Controls.Add
вставляя в них имя своей процедуры и текст кнопки. Все.

Вот ссылочка на MSDN: http://msdn.microsoft.com/en-us/library/ms406046.aspx?ppud=4
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist пишет: По факту остается лишь скачать файл и добавлять блоки:
Дмитрий, я прочитала еще раз все это, плюс ознакомилась вот с этим Ссылка
Но есть маленькая проблемка....... я макросы писать не умею, как правило я находила нужный мне, копировала текст и вставляла по назначению))
К сожалению для меня это как.... китайские иероглифы    :oops:  
В том что описано по первой Вашей ссылке - в синее окошко можно вставлять готовый макрос? Или там какие-то нюансы, что даже пробовать не стоит?
 
Посмотрите пост № 4 от JayBhagavan, наиболее легкий вариант, как мне кажется.
Записать макрос в персональную книгу макросов и оттуда назначать кнопку. А чтобы макрос не потерялся при переустановке экселя или ОС, его лучше всего экспортировать и хранить в виде файлика где-то
 
Цитата
ASKer_mk пишет: Записать макрос в персональную книгу макросов
Спасибо, до сегодняшнего дня все так и было... Просто ужасно надоело......
 
Цитата
Rochas пишет: в синее окошко можно вставлять готовый макрос
Причем здесь синее окошко? Синее окошко - это через XML. Используйте код для 2003 Excel - отдельной красивой вкладки не будет, но будет вкладка "Надстройка" во всех книгах, на которой будут все Ваши кнопки. Там Вам надо будет лишь менять упомянутый мной выше блок(в статье же каждая строка расписана и примеры приложены - Вы хоть скачайте да попробуйте оба).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Rochas пишет: Просто ужасно надоело......
Так много макросов или часто офис переустанавливается? ;-) Вопрос оффтопный и риторический ответу не подлежит
Изменено: ASKer_mk - 25.11.2014 23:31:33
 
Много макросов :-)
Цитата
The_Prist пишет: Вы хоть скачайте да попробуйте оба
Уже скачивала и пробовала. Извините уж за глупые вопросы. Попробую еще раз
 
Если скачали, то обратите внимание на .xla. Там каждая строка с комментарием и не должно возникнуть сложностей с копированием одного блока нужное кол-во раз и изменения в каждом блоке двух вещей: OnAction и Caption. Плюс  надо .Style = 2, чтобы не морочиться с иконками. Или оставить как есть - тоже не сильно изменит суть.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist пишет: тоже не сильно изменит суть
Спасибо большое! Правда мне это не очень помогло, т.к. уже говорила - не понимаю в макросах ничего? ни что значит OnAction и Caption, ни то что Style = 2. Мне этот набор букв вообще ни о чем не говорит к сожалению   :D   Разобраться конечно попробую.... Спасибо!
 
Цитата
Rochas пишет: Мне этот набор букв вообще ни о чем не говорит к сожалению.ни что значит OnAction и Caption, ни то что Style = 2
Но читать-то Вы умеете? Ваши ответы все же наводят меня на мысль, что страничку-то Вы посетили, но читать там ничего не стали. Повторяю в третий раз - на странице каждая строка кода прокомментирована. Т.е. там есть подсказка, что данная строка делает и за что отвечает.В общем я совершенно не понимаю, как из этого кода можно не понять что куда надо вписать:
Код
'Добавляем новую кнопку 
With .Controls.Add
      'отображаемый текст кнопки
      .Caption = "ИЗМЕНИТЬ СВОЙСТВА АТИВНОЙ ЯЧЕЙКИ"
      'стиль кнопки
      'доступные стили:
      '1 - только значек(16x16)
      '2 - только текст
      '3 - картинка и текст
      .Style = 3
      'назначем картинку из набора офиса
      'посмотреть доступные можно: http://www.excel-vba.ru/general/moi-nadstrojki/panel-ikonok-faceid/
      .FaceId = 2
      'имя процедуры, которая будет выполнена при нажатии кнопки
      .OnAction = "Test"
     End With
именно этот блок надо скопировать и вставить столько раз, сколько кнопок собираетесь сделать. И заменить надо лишь два параметра - OnAction и Caption.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Домучала надстройку, только вопрос, а как мне теперь добавить еще несколько надстроек в ту же группу? Выглядит она пока вот так, пробовала в программе Ribbon копировать все то же самое и ниже вставлять, заменяя лишь несколько наименований, происходит ошибка, и в экселе надстройка вообще пропадает...


Код
<?xml version="1.0" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
   <ribbon startFromScratch="false">
      <tabs>
         <tab id="excel-vba" label="Вика">
            <group id="groupe_1" label="Путь к файлу">
               <button id="cahnge_cell" image="xTZxTSxTVxU8xUBxTYxTXxU5xU6" label="Путь файла" onAction="CallTest" />
            </group>
         </tab>
      </tabs>
   </ribbon>
</customUI>
  
 
именно вот эта часть отвечает за создание отдельной кнопки на панели.
Код
<button id="cahnge_cell" image="xTZxTSxTVxU8xUBxTYxTXxU5xU6" label="Путь файла" onAction="CallTest" />

Добавляя их друг за другом(в пределах одной </group>) и назначая свойство onAction сможете "плодить" кнопки для вызова макросов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist пишет: именно вот эта часть отвечает за создание отдельной кнопки на панели.
А как тогда быть с макросом в файле надстройки? Новый макрос в отдельный модуль?
 
Давайте Вы все же подучите синтаксис работы с VBA для начала. А то получается мы тут все Вам надстройку на пальцах делаем. Т.е. Вы сейчас получается хотите научиться бегать и прыгать, не научившись ходить. Начинать всегда надо с азов элементарных - без них будете тыркаться во все щелки как слепой котенок.
Есть несколько путей для обработки нажатия нескольких кнопок одной панели: либо для каждой кнопки своя процедура(типа CallTest), либо одна процедура, внутри которой организован выбор Select Case, который опирается на control.id (в приведенной в статье ссылке это id = cahnge_cell).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist пишет: А то получается мы тут все Вам надстройку на пальцах делаем
И дай Бог чтобы Вам НЕ пришлось что-то делать в срочном порядке, совершенно не зная нюансов и не понимая чего-то.
По-моему форум на то и форум, чтобы спрашивать, узнавать и тд. Я не думаю, что тут каждый второй сидит и знает все АЗЫ VBA и если человек чего-то не знает - это не значит что надо отправлять его читать специализированную литературу. Между прочим, прежде чем задать вопрос, я просмотрела не один десяток сайтов и прочитала далеко не одну статью в поисках ответов на все свои вопросы. Так что извините, что НАПРЯГЛА Вас своими вопросами!

И все равно спасибо, я разобралась, все получилось, считаю тему закрытой.
Страницы: 1
Наверх