yuas Пользователь Сообщений: 8 |
Уважаемые эксперты, Есть файл с макросами и защитой листов. При изменении файла в режим «Общий доступ» файл пишет, что в файле есть макросы и они не будут работать. Вопросы: Изменено: vikttur — 05.09.2021 18:24:52 |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#2 05.09.2021 18:31:18
напишите для начала, как именно назначаете общий доступ и в какой это версии офиса. Потому что начиная с 2016 по умолчанию общий доступ к книгам назначается путем помещения копии файла в облачное хранилище и доступ к нему организовывается при помощи офиса он-лайн, в котором макросы просто не реализованы.
смотря что Вы хотите от защиты. Если Ваши макросы в процессе работы снимают и устанавливают защиту на листы — то идея провальная, т.к. ни в одной версии Excel не поддерживается изменение параметров защиты общих файлов. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
yuas Пользователь Сообщений: 8 |
В моем файле Макросы некоторые в файле снимают и возвращают защиту листов. |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#4 06.09.2021 20:14:49
ну для начала хотя бы прочитать то, что я написал выше. Если макросы меняют параметры защиты — то работать они не будут. Точнее будут — но будут выдавать ошибки.
Угадывать на что именно ругается не хочется, поэтому лучше приложите скрин. Возможно, у Вас в файле есть умные таблицы и Excel пишет про XML и все в этом духе. Такая тема была прямо вот на днях, не должна была убежать далее 2-ой страницы. Возможно, Вам поможет что-то из этой статьи: Каждому пользователю свой лист/диапазон Там в самом начале рекомендации по разграничению диапазонов — возможно, это решит часть Ваших проблем. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
yuas Пользователь Сообщений: 8 |
когда пытаюсь сделать общий доступ, появляется окошко с надписью «В книге содержатся макросы, написанные на Visual Basic. Изменить или просмотреть макросы в файлах совместного доступа невозможно» |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#6 07.09.2021 15:58:57 Это решить нельзя. Потому что Вы выкладываете книгу в общий доступ в новых версия, про которые я писал уже выше:
как Вы решите проблему того, что макросы в версии он-лайн не реализованы? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#7 07.09.2021 16:04:37
Прошу прощения, что вставляю свои 5ть копеек. Думаю, что, возможно, подойдёт переход на гугл таблицы и замена макросов VBA на google apps scripts, с учётом всех нюансов и ограничений. <#0> |
||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#8 07.09.2021 16:27:36
как минимум необходимо знать эти нюансы и что должен делать файл. Возможно, переход на гугл и вариант. А возможно и нет. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
RAN Пользователь Сообщений: 7091 |
#9 07.09.2021 16:38:50
Дим, а старый общий доступ остался? |
||
RAN, да. Надо зайти в настройку Панели Быстрого Доступа -выбрать Все команды и найти там «Общий доступ к книге(старые версии)». Вынести на панель или на другую вкладку. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
yuas Пользователь Сообщений: 8 |
|
New Пользователь Сообщений: 4581 |
yuas, кто вам мешает проверить это самому и рассказать нам? Изменено: New — 07.09.2021 19:21:29 |
Когда тогда? yuas, Вы уж извините, но то ли Вы вообще не читаете ответы, то ли я Вас совсем не понимаю. Задавайте более конкретные вопросы, что ли. Я же все расписал еще в первом сообщении. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
RAN Пользователь Сообщений: 7091 |
#14 07.09.2021 19:56:12
Будет. |
||
Содержание
- 1 Как сохранить макрос в личную книгу макросов
- 1.1 Как создать Личную Книгу Макросов
- 1.2 Как использовать Личную Книгу Макросов
- 1.3 Где хранится Личная Книга Макросов
- 1.4 P.S.
- 1.5 Ссылки по теме
Большинство пользователей Excel знают, как создать и использовать макрос внутри файла одной рабочей книги. В случаи, когда необходимо использовать тот же макрос в других файлах рабочих книг, тогда можно сохранить его в личной книге макросов. У нее всегда одно название – Personal.xlsb. Она всегда открывается при запуске программы Excel, только скрыто. Данная книга не является доступной по умолчанию в Excel, поэтому ее нужно сначала подключить.
Как сохранить макрос в личную книгу макросов
Чтобы создать и схоронить код в личной книге макросов:
- Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Запись макроса».
- В появившемся диалоговом окне «Запись макроса», из выпадающего списка «Сохранить в:» выберите опцию «Личная книга макросов». И нажмите на кнопку OK.
- Теперь выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Остановить запись».
- Откройте редактор Visual Basic: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11. В окне «Project-VBAProject», в дереве проектов появиться доступная еще одна книга Personal.xlsb. Кликните на «плюсик» слева на против этой книги, чтобы раскрыть проект книги Personal.xlsb. А после двойным щелчком отройте ее Module1.
- В результате откроется окно кода модуля с зарегистрированным макросом. Удалите его код и введите код своего макроса. Выберите инструмент в редакторе макросов: «File»-«Save Personal.xlsb», а потом закройте редактор Visual Basic.
Теперь у вас подключена скрытая книга для хранения макросов, к которым можно получить доступ из любой другой рабочей книги. Личная книга макросов где находится находиться в папке автозагрузки файлов Excel – XLSTART: C:Documents and SettingsUser_NameAppDataRoamingMicrosoftExcelXLSTARTPersonal.xlsb
Примечание. XLSTART – это папка для автозагрузки файлов вместе с запуском программы Excel. Если сохранить файл в данную папку, то он будет открываться вместе с программой Excel. Для версий старше 2007 путь к папке автозагрузки будет следующим: C:Program FilesMicrosoft OfficeOffice12Xlstart.
Если вам нужно записать в нее новый макрос просто откройте редактор, а потом откройте модуль книги Personal.xlsb. Уже записанные в нее макросы удалять не нужно. Они не будут между собой конфликтовать если соблюдать одно простое правило – в одном модуле нельзя хранить макросы с одинаковыми именами.
Если вы еще не знакомы с макросами в Excel, то я вам даже немного завидую. Ощущение всемогущества и осознание того, что ваш Microsoft Excel можно прокачивать почти до бесконечности, которые придут к вам после знакомства с макросами — приятные чувства.
Однако, эта статья для тех, кто уже «познал мощь» и начал использовать макросы (чужие или написанные самостоятельно — не важно) в своей повседневной работе.
Макрос — это код (несколько строк) на языке Visual Basic, которые заставляют Excel сделать то, что вам нужно: обработать данные, сформировать отчет, скопипастить много однообразных таблиц и т.п. Вопрос — где эти несколько строк кода хранить? Ведь от того, где макрос хранится будет потом зависеть где он сможет (или не сможет) работать.
Если макрос решает небольшую локальную проблему в отдельно взятом файле (например обрабатывает внесенные в конкретный отчет данные особым образом), то логично хранить код внутри этого же файла. Без вопросов.
А если макрос должен быть относительно универсален и нужен в любой книге Excel — как, например, макрос для конвертирования формул в значения? Не копировать же его код на Visual Basic каждый раз в каждую книгу? Кроме того, рано или поздно, почти любой пользователь приходит к мысли, что неплохо было бы сложить все макросы в одну коробку, т.е. иметь их всегда под рукой. И может быть даже запускать не вручную, а сочетаниями клавиш? И вот тут может здорово помочь Личная Книга Макросов (Personal Macro Workbook).
Как создать Личную Книгу Макросов
На самом деле, Личная Книга Макросов (ЛКМ) — это обычный файл Excel в формате двоичной книги (Personal.xlsb), который автоматически в скрытом режиме открывается одновременно с Microsoft Excel. Т.е. когда вы просто запускаете Excel или открываете любой файл с диска, на самом деле открываются два файла — ваш и Personal.xlsb, но второго мы не видим. Таким образом все макросы, которые хранятся в ЛКМ оказываются доступы для запуска в любой момент, пока открыт Excel.
Если вы еще ни разу не пользовались ЛКМ, то изначально файл Personal.xlsb не существует. Самый легкий способ его создать — это записать рекордером какой-нибудь ненужный бессмысленный макрос, но указать в качестве места для его хранения Личную Книгу — тогда Excel будет вынужден автоматически ее для вас создать. Для этого:
- Откройте вкладку Разработчик (Developer). Если вкладки Разработчик не видно, то ее можно включить в настройках через Файл — Параметры — Настройка ленты (Home — Options — Customize the Ribbon).
- На вкладке Разработчик нажмите кнопку Запись макроса (Record Macro). В открывшемся окне выберите Личную книгу макросов (Personal Macro Workbook) как место для хранения записанного кода и нажмите OK:
- Остановите запись кнопкой Остановить запись (Stop Recording) на вкладке Разработчик (Developer)
Проверить результат можно, нажав на кнопку Visual Basic там же на вкладке Разработчик — в открывшемся окне редактора в левом верхнем углу на панели Project — VBA Project должен появиться наш файл PERSONAL.XLSB. Его ветку которого можно развернуть плюсиком слева, добравшись до Module1, где и хранится код только что записанного нами бессмысленного макроса:
Поздравляю, вы только что создали себе Личную Книгу Макросов! Только не забудьте нажать на кнопку сохранения с дискеткой в левом верхнем углу на панели инструментов.
Как использовать Личную Книгу Макросов
Дальше все просто. Любой нужный вам макрос (т.е. кусок кода, начинающийся на Sub и заканчивающийся End Sub) можно смело копировать и вставлять либо в Module1, либо в отдельный модуль, добавив его предварительно через меню Insert — Module. Хранить все макросы в одном модуле или раскладывать по разным — исключительно вопрос вкуса. Выглядеть это должно примерно так:
Запустить добавленный макрос можно в диалоговом окне, вызываемом с помощью кнопки Макросы (Macros) на вкладке Разработчик:
В этом же окне, нажав кнопку Параметры (Options), можно задать сочетание клавиш для быстрого запуска макроса с клавиатуры. Будьте внимательны: сочетания клавиш для макросов различают раскладку (русская или английская) и регистр.
Кроме обычных макросов-процедур в Личной Книге можно хранить и пользовательские макро-функции (UDF = User Defined Function). В отличие от процедур, код функций начинаются с оператора Function или Public Function, а заканчиваются на End Function:
Код необходимо аналогичным образом скопировать в любой модуль книги PERSONAL.XLSB и затем можно будет вызвать функцию обычным образом, как любую стандарную функцию Excel, нажав кнопку fx в строке формул и выбрав функцию в окне Мастера Функций в категории Определенные пользователем (User Defined):
Примеры таких функций можно в больших количествах найти в интернете или здесь же на сайте (сумма прописью, приблизительный текстовый поиск, ВПР 2.0, конвертация кириллицы в транслит и т.п.)
Где хранится Личная Книга Макросов
Если вы будете использовать Личную Книгу Макросов, то рано или поздно у вас возникнет желание:
- поделиться своими накопленными макросами с другими пользователями
- скопировать и перенести Личную Книгу на другой компьютер
- сделать ее резервную копию
Для этого нужно будет найти файл PERSONAL.XLSB на диске вашего компьютера. По умолчанию, этот файл хранится в специальной папке автозапуска Excel, которая называется XLSTART. Так что все, что нужно — это добраться до этой папки на нашем ПК. И вот тут возникает небольшая сложность, потому что местоположение этой папки зависит от версии Windows и Office и может различаться. Обычно это один из следующих вариантов:
- C:Program FilesMicrosoft OfficeOffice12XLSTART
- C:Documents and SettingsComputerApplication DataMicrosoftExcelXLSTART
- C:Usersимя-вашей-учетной-записиAppDataRoamingMicrosoftExcelXLSTART
Как вариант, можно спросить о положении этой папки сам Excel с помощью VBA. Для этого в редакторе Visual Basic (кнопка Visual Basic на вкладке Разработчик) нужно открыть окно Immediate сочетанием клавиш Ctrl+G, ввести туда команду ? Application.StartupPath и нажать на Enter:
Полученный путь можно скопировать и вставить в верхнюю строку окна Проводника в Windows и нажать Enter — и мы увидим папку с нашим файлом Личной Книги Макросов:
P.S.
И несколько практических нюансов вдогон:
- при использовании Личной Книги Макросов Excel будет запускаться чуть медленнее, особенно на слабых ПК
- стоит периодически очищать Личную Книгу от информационного мусора, старых и ненужных макросов и т.п.
- у корпоративных пользователей бывают иногда сложности с использованием Личной Книги, т.к. это файл в системной скрытой папке
Ссылки по теме
- Что такое макросы, как их использовать в работе
- Полезности для VBA-программиста
- Тренинг «Программирование макросов на VBA в Microsoft Excel»
Скрипты Office можно предоставлять другим пользователям в вашей организации. Когда вы предоставляете общий доступ к скрипту, вы присоединяете его к книге, позволяя другим пользователям просматривать и запускать его.
Важно: Любой, кто может редактировать книгу, может просматривать и запускать вложенные скрипты.
Предоставление общего доступа к сценарию в книге
Чтобы поделиться сценарием в книге, можно использовать страницу со сведениями о сценарии. Скрипты хранятся в OneDrive. При совместном использовании вы создаете ссылку на него в открытой книге.
-
На вкладке Автоматизация выберите скрипт, к которому вы хотите предоставить общий доступ, из коллекции или списка Все скрипты . Обратите внимание, что вы можете предоставлять доступ только к собственным сценариям. У вас может быть доступ к другим скриптам, к которым вы предоставили общий доступ, или к встроенным примерам скриптов, которым невозможно предоставить общий доступ.
Откроется редактор кода, в котором отобразится выбранный скрипт.
-
В меню Дополнительные параметры редактора кода (…) выберите Поделиться.
-
Прочтите сообщение о том, кто может использовать общий скрипт, и выберите Поделиться , чтобы продолжить. В коллекции скриптов, к которым вы предоставили общий доступ, теперь имеет другой значок. Это означает, что она была предоставлена в книге общего доступа и может быть запущена любым, кто может редактировать книгу.
Примечания:
-
Общие сценарии могут запускаться любым пользователем, обладающим разрешением на запись в книге. Все изменения, внесенные сценарием, записываются как правки пользователя, запустившего сценарий, а не его владельца.
-
Все изменения, вносимые вами в общий сценарий, автоматически становятся доступны другим пользователям. Сценарий обновляется при сохранении. Пользователям сценария может потребоваться повторно открыть его, если при внесении изменений у них была открыта старая версия.
-
Сценарий Office можно использовать только в организации. Скрипты не могут предоставляться внешним пользователям.
-
Вы также можете предоставить общий доступ к скрипту, создав кнопку. Дополнительные сведения см. в статье Создание кнопки для запуска сценария Office.
Отмена общего доступа к сценарию
Вы можете отменить общий доступ к любому сценарию в книге, открытой для редактирования. Обратите внимание, что если вы отмените общий доступ к скрипту, который у вас нет, вы не сможете добавить его обратно. Владелец скрипта должен будет сделать это самостоятельно.
-
Выберите скрипт в коллекции сценариев.
-
В меню Дополнительные параметры редактора кода (…) выберите Остановить общий доступ.
-
Если вы являетесь владельцем сценария, в диалоговом окне Прекратить общий доступ в этой книге можно выбрать Остановить общий доступ во всех книгах. Убедитесь, что вы хотите прекратить общий доступ, так как его невозможно отменить. Чтобы повторно предоставить общий доступ к скрипту, вам придется вручную повторно поделиться им в каждой книге. Когда все будет готово, выберите Остановить общий доступ.
Примечание: Чтобы предоставить общий доступ к скрипту определенному пользователю, а не в книге, перейдите в папку Документы > OneDrive > папку Скрипты Office и поделитесь файлом скрипта.
Разрешить выполнение общего скрипта
При первом запуске скрипта, который вам не принадлежит, откроется диалоговое окно Запуск разрешения. В этом случае необходимо разрешить скрипту просматривать и редактировать книгу. Если вы доверяете автору сценария, выберите Разрешить.
Примечание: При первом запуске скрипта также открывается диалоговое окно Запуск разрешения каждый раз, когда скрипт обновляется другим коллегой в вашей организации.
См. также
Общие сведения о сценариях Office в Excel
Параметры сценариев Office в Microsoft 365
Создание кнопки для запуска сценария Office
Нужна дополнительная помощь?
129 / 67 / 31 Регистрация: 24.07.2018 Сообщений: 787 |
|
1 |
|
Многопользовательский доступ к книге с кучей макросов14.08.2019, 13:27. Показов 6571. Ответов 4
Добрый день. Сегодня подошел начальник, говорит что к документу эксель можно сделать многопользовательский доступ, на что я ответил что для наших книг такое не возможно.
0 |
370 / 268 / 93 Регистрация: 18.11.2015 Сообщений: 990 |
|
14.08.2019, 15:01 |
3 |
Проблема может быть здесь:
где менеджеры набивают заказы То есть, если они вбивают заказы одновременно на один лист, несомненно будет коллизия. И excel предложит выбрать чей заказ оставить, второй соответственно потеряется.
0 |
129 / 67 / 31 Регистрация: 24.07.2018 Сообщений: 787 |
|
14.08.2019, 15:08 [ТС] |
4 |
ArtNord, В общем я протестировал немного. Это надо всю книгу переделывать. Т.к. При удалении записей в архив уже все дублируется.Номера заказов будут смешиваться. Идея так себе. Добавлено через 2 минуты
0 |
370 / 268 / 93 Регистрация: 18.11.2015 Сообщений: 990 |
|
14.08.2019, 15:10 |
5 |
.Номера заказов будут смешиваться. Свой префикс каждому менеджеру
+ sql самый лучший вариант
0 |
Реализовать многопользовательский доступ к файлу с макросами |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |