2 как получить доступ к библиотеке функций в microsoft excel
Важно: Общие книги ранее использовались для организации совместной работы с книгой. Эта функция имеет множество ограничений и была заменена функцией совместного редактирования. Совместное редактирование доступно в некоторых версиях Excel, включая Excel 2016 для подписчиков Office 365.
Включение общих книг
Прежде чем продолжить, вы должны быть уверены, что хотите использовать этот способ. Общие книги имеют ограничения, а одна из них — невозможность редактирования с помощью Excel Online. Поэтому мы настоятельно рекомендуем использовать совместное редактирование, которое является заменой общих книг.
Создайте новую книгу или откройте существующую. Затем добавьте ее в сетевую папку. Например, разместите его в месте, например \сервер_намефолдер_наме. Не сохраняйте файл в OneDrive или на SharePoint. Если вы хотите сохранить ее в эти расположения, используйте совместное редактирование.
На вкладке Рецензирование нажмите кнопку Общий доступ к книге.
Имейте в виду, что в последних версиях Excel эта кнопка скрыта. Ниже описано, как ее отобразить.
На вкладке Правка установите флажок Разрешить изменять файл нескольким пользователям одновременно.
На вкладке Подробнее выберите параметры для отслеживания и обновления изменений, а затем нажмите кнопку ОК.
Если книга новая, введите ее имя в поле Имя файла. Если используется существующая книга, нажмите кнопку ОК, чтобы сохранить ее.
Если книга содержит ссылки на другие книги и документы, проверьте их и исправьте все неработающие ссылки.
В меню Файл нажмите кнопку Сохранить.
Когда все будет готово, в верхней части окна Excel рядом с именем файла появится надпись — общая.
Дополнительные сведения
Имейте в виду, что общие книги — это устаревший метод предоставления общего доступа. Поэтому при его использовании не поддерживаются различные возможности и действия. В таблице ниже приведн неполный список функций, которые не поддерживаются.
Совместный доступ к файлу Excel одновременно
Совместный доступ в Microsoft Excel дает возможность работать с одним файлом сразу нескольким пользователям. Десять-двадцать человек на разных компьютерах одновременно вносят какие-то данные в один документ. Где находится определенная информация, работают определенные формулы.
«Главный пользователь» имеет возможность отслеживать действия рабочей группы, добавлять/удалять участников, редактировать противоречивые изменения. Как настроить совместную работу в Excel.
Особенности работы с общим файлом
В книге Excel со совместным доступом не все задачи можно выполнять.
- Создавать таблицы Excel.
- Создавать, менять или просматривать сценарии.
- Удалять листы.
- Объединять либо разделять ячейки.
- Работать с XML-данными (импортировать, добавлять, обновлять, удалять и т.д.).
Выход: отключить общий доступ – выполнить запрещенную задачу – снова включить доступ.
Совместное пользование ограничивает для участников еще ряд задач:
Как сделать совместный доступ к файлу Excel?
Сначала определяемся, какую книгу мы «откроем» для редактирования сразу несколькими участниками. Создаем новый файл и наполняем его информацией. Либо открываем существующий.
- Переходим на вкладку «Рецензирование». Диалоговое окно «Доступ к книге».
- Управление доступом к файлу – правка. Ставим галочку напротив «Разрешить изменять файл нескольким пользователям одновременно».
- Переходим к инструменту «Подробнее», чтобы настроить параметры многопользовательского редактирования.
- Нажимаем ОК. Если мы открываем общий доступ к новой книге, то выбираем ей название. Если совместное пользование предполагается для существующего файла – жмем ОК.
- Открываем меню Microsoft Office. Выбираем команду «Сохранить как». Выбираем тот формат файла сохранения, который «пойдет» на всех пользовательских компьютерах.
- Местом сохранения выбираем сетевой ресурс / сетевую папку, которую откроют предполагаемые участники. Нажимаем «Сохранить».
Внимание! Нельзя использовать для сохранения общего файла веб-сервер.
Теперь проверим и обновим ссылки:
- Вкладка «Данные». «Подключения».
- Изменить ссылки / изменить связи. Если такая кнопка отсутствует, в листе нет связанных файлов.
- Переходим на вкладку «Состояние», чтобы проверить имеющиеся связи. На работоспособность связей указывает кнопка ОК.
Открытие книги с совместным доступом
- Открываем меню Microsoft Office.
- Нажимаем «Открыть».
- Выбираем общую книгу.
- Когда книга открыта, нажимаем на кнопку Microsoft Office. Переходим на вкладку «Параметры Excel» (в нижней части меню).
- «Общие» — «Личная настройка» — «Имя пользователя». Вводим опознавательную информацию (имя, ник-нейм).
Все. Можно редактировать информацию, вводить новую. После работы – сохранить.
Случается, что при открытии книги Excel с совместным доступом к файлу появляется запись «Файл заблокирован». Сохранить не получается. При последующем открытии оказывается, что общий доступ отключен. Возможные причины проблемы:
- Одну и ту же часть документа редактируют несколько пользователей. К примеру, вбивают разные данные в одну ячейку. Возникает блокировка.
- Во время пользования совместным файлом ведется журнал изменений (кто входил, когда, что делал). Книга увеличивается. Начинает «глючить».
- Удалили кого-то из пользователей, но пока ему не сказали об этом. Тогда блокировка может появиться только на его компьютере.
- Большая нагрузка на сетевой ресурс.
Что можно сделать, если совместный доступ к файлу файл заблокирован:
- Почистить либо удалить журнал изменений.
- Почистить содержимое файла.
- Отменить, а потом снова активировать совместный доступ.
- Открыть книгу xls в OpenOffice. И снова сохранить ее в xls.
Замечено, что запись «Файл заблокирован» реже появляется в новейших версиях Excel.
Как удалить пользователя
Перед удалением проверьте, что пользователи закончили работу с файлом.
Как отключить режим совместного доступа в Excel
Все пользователи должны сохранить информацию и закрыть общий файл. Если необходимо оставить журнал, соблюдаем инструкцию:
- Вкладка «Рецензирование» — «Исправления» — «Выделить исправления».
- Устанавливаем параметры «Исправлений». По времени – «все». Галочки напротив «Пользователем» и «В диапазоне» сняты. Напротив «вносить изменения на отдельный лист» — стоит. Жмем ОК.
- Откроется Журнал изменений. Его можно сохранить либо распечатать.
Чтобы отключить совместный доступ к файлу Excel, на вкладке «Рецензирование» нажать «Доступ к книге» и снять галочку напротив «Разрешить изменять файл нескольким пользователям».
В списке должен остаться один пользователь – Вы.
Excel Online. Настройка общего доступа к excel-таблицам
На работе поставили задачу организовать общий доступ к таблицам Excel для одновременного редактирования несколькими сотрудниками предприятия, возможность оперативно посмотреть информацию если это потребуется, а так же внести поправки и другую важную информацию.К слову не все сотрудники сидят в одном здании, а на разных объектах и площадках, которым необходимо видеть информацию занесенную коллегами. В связи с этим было рассмотрено несколько вариантов для реализации доступа:
Microsoft Excel
Непосредственно штатным Excel который установлен у всех,но есть некоторые нюансы:
— Файл должен находится в одной сети (у нас все пользователи раскиданы по разным объектам)
— Некоторые задачи становятся недоступны (создавать таблицы Excel;создавать, менять или просматривать сценарии; удалять листы; объединять либо разделять ячейки.)
— Частая «блокировка» файла
— Не видно кто что делает, т.е. информация будет доступна только после сохранения файла. Один не приятный момент при работе с файлом — если вы записываете информацию в одну и ту же ячейку, при сохранении файла работает правило «кто последний тот и папа»)))))
Реализация делается следующим образом, заходим в «Рецензирование» и щелкаем по значку «Доступ к книге».
После этих действий файл станет общим и даёт пользователям одновременное редактирование. В названии файла появится приписка [Общий]
При нажатии кнопки «Доступ к книге» может возникать ошибка:
Достаточно сделать по шагам что написано в диалоговом окне ошибки и она пропадёт!
И так что же мы увидим когда нажмем кнопку «Доступ к книге»?!
А увидим список пользователей которые работают в данный момент и не забудем так же поставить галочку «Разрешить изменять файл нескольким пользователям одновременно»
Excel настроен для работы с общими документами
OneDrive
Стандартное облачное хранилище семейства Windows 8.08.110. Отказались сразу из-за:
- отличие операционных систем (большинство пользователей работают на windows 7)
- каждому пользователю необходимо было бы регистрировать учетную запись Microsoft
- различные версии Microsoft Office которые могут при неправильном использовании конфликтовать
- сложный механизм аутентификации для понимания конечного пользователя.
Google Docs (Гугл документы)
В Google многие моменты схожи с OneDrive, но еще есть и некоторые «подводные камни» которые усложняют настройку общего доступа, а именно:
- для каждого пользователя необходимо устанавливать расширение Chrome «Редактирование файлов Office»
- создание google аккаунта
Google первая компания которая запустила office online из которого можно выделить online excel который позволяет работать в реальном режиме большому кол-ву пользователей многие компании уже давно работают в нем и в этом есть ряд преимуществ:
- разграничение прав доступа на документ, страницу, столбцы
- использование сложных формул и своих доработок
И мы склонялись конечно к легкому варианту (Google), но использования на работе яндекс сервисы как часть нашей внутренней инфраструктуры решили пойти по сложному пути и использовать то что предлагает яндекс.
У нас вся почта завязана на Яндекс.Коннект, у всех есть корпоративная почта, стоит Яндекс.Диск, всё между собой синхронизируется, нет необходимости быть в одной сети (достаточно иметь доступ к интернету), бэкапы можно сделать на раз два (просто сохранить файл на диск).
Настройка и получение общего доступа с помощью Excel Online через Яндекс
Изначально в яндекс диске создаем папку в какой будет лежать файлы для общего доступа и одновременной работы
и настраиваем доступ к этой папке путем ввода логина яндекс почты и ставим права на просмотр или полные права
после того как вы человека добавили к документу ему на почту придёт письмо с принятием приглашения :
Нажимаем «Принять соглашение» и попадаем в веб-интерфейс Яндекс.Диска, в ту самую папку которую создал сисадмин , щелкаем два раза по папке и внутри папки Excel’ский файл
Далее просто нажимаем на файл, вверху появится черная полоска с функциями ,что можно сделать с данным файлом. Нас интересует функция «Редактировать» (в зависимости от прав доступа, та или иная функция может отсутствовать)
При нажатии данной функции попадаем в тело документа и можно начинать работать как в привычном Excel’е. Сохранение файла происходит автоматически и достаточно просто закрыть вкладку с названием таблицы.
Общий доступ настроен, все пользователи видят и могут редактировать Excel-таблицы!
Всем пока и хорошего дня!
Заметка от nibbl — первые проблемы при работе с Yandex Excel:
- разграничение прав доступа очень «топорные» они даются только на папку, а не на документ (надеюсь в скором времени они это поправят потому как ОЧЕНЬ не удобно)
- заметные тормоза при работе (хотя чему тут удивлять они используют пакет Microsoft )
- пока не хочу переходить на Гугл но если люди будут возмущаться то придется перейти. (камень в огород Яндекса, сырые продукты выпускают на рынок, один ямб чего стоит( ладно ждем и надеемся что все будет хорошо.)
Как настроить?
Всё о Интернете, сетях, компьютерах, Windows, iOS и Android
Как сделать общий доступ к файлу Excel
В корпоративных сетях, как крупных, так и не очень, часто любят выкладывать документы на файловый сервер в общий доступ для нескольких пользователей и редактировать их удалённо, прямо на сетевом диске, не скачивая себе на компьютер. С электронными таблицами не всё так просто — по умолчанию общий доступ к файлу Excel отключен в параметрах документа, а значит можно будет открыть только одну его копию для одного пользователя. Чтобы включить совместный доступ в Экселе, надо в главном меню открыть раздел «Рецензирование» и найти группу «Изменения»:
В ней надо найти и нажать кнопку «Доступ к книге». Появится окно управления общим доступом к файлу Excel:
Здесь надо поставить галочку «Разрешить изменять файл нескольким пользователям одновременно», после чего — нажать на кнопку «ОК».
Теперь при сохранении этого документа в названии будет отметка «[Общий]», что означает что включен совместный общий доступ для файла Эксель.
Примечание: Обратите внимание на поле «Файл открыт следующими пользователями. В нём отображаются все, кто вносил изменения в этой книге. Чтобы посмотреть что было изменено конкретным пользователем, то нужно на вкладке «Рецензирование» нажать на кнопку «Исправления» и в меню выбрать пункт «Выделить исправления». Появится такое окно:
Здесь можно выбрать подходящий вариант отслеживания изменений — по времени, конкретным пользователем или в заданных ячейках. По умолчанию, они будут выделены на экране. При необходимости можно будет вынести изменения в отдельный файл.
Департамент ИТ
Возможности системы Microsoft Excel позволяют работать по наполнению одного файла электронных таблиц одновременно нескольким пользователям. Для того, чтобы начать совместную работу с документом, достаточно в документе Microsoft Excel перейти в меню «Рецензирование» — «Доступ к книге» и выбрать «Разрешить изменять файл нескольким пользователям одновременно» (Рис. 1).
Внимание! Для того, чтобы включить общий доступ к файлу, он должен располагаться на локальном компьютере. Включить общий доступ к документу, расположенному на общем сетевом ресурсе не получиться. В общем случае вам необходимо скопировать файл, расположенный на общем сетевом ресурсе к себе на компьютер, включить в нем возможность одновременного изменения несколькими пользователями и после этого вернуть файл обратно.
После выполнения этих настроек и перенесения файла на доступный всем сетевой ресурс вы сможете в этом же меню просматривать список одновременно работающих с ним пользователей (Рис. 2).
В случае, если вы одновременно с вашим коллегой изменили одни и те же ячейки в документе Excel в момент сохранения документа появится предупреждение о конфликте (Рис. 3):
Таким образом, совместная работа с таблицами Excel позволяет не только повысить оперативность ввода и изменения данных, но и позволяет избежать ошибок при вводе информации.
Менеджер функций Microsoft Excel упрощает работу с вычислениями. Он избавляет от необходимости вводить формулу по одному символу, а после искать ошибки в расчетах, возникшие из-за опечаток. Богатая библиотека менеджера функций Excel содержит шаблоны для разных случаев, кроме тех, когда нужно создать вложенную формулу. Чтобы работа с таблицами занимала меньше времени, пошагово разберем использование этого инструмента.
Шаг №1: открыть Мастер функций
Перед тем, как обратиться к инструменту, выберите ячейку для записи формулы – кликните мышкой, чтобы вокруг клетки появилась жирная рамка. Существует несколько способов запуска Мастера функций:
- Нажать кнопку «Fx», которая расположена слева от строки для работы с формулами. Этот способ самый быстрый, поэтому пользуется популярностью среди владельцев Microsoft Excel.
- Перейти во вкладку «Формулы» и нажать большую кнопку с тем же обозначением «Fx» в левой части панели.
- Выбрать нужную категорию в «Библиотеке функций» и кликнуть на надпись «Вставить функцию» в конце строки.
- Воспользоваться комбинацией клавиш Shift+F Это тоже удобный способ, но есть риск забыть нужное сочетание.
Шаг №2: выбрать функцию
Менеджер функций содержит большое количество формул, распределенных по 15 категориям. Инструменты поиска позволяют быстро найти нужную запись среди многих. Поиск совершается с помощью строки или по отдельным категориям. Необходимо изучить каждый из этих методов. В верхней части окна Менеджера находится строка «Поиск функции». Если вы знаете название нужной формулы, впишите его и нажмите «Найти». Ниже появятся все функции с похожим на вписанное слово названием.
Поиск по категориям помогает, когда имя формулы в библиотеке Excel неизвестно. Кликните по стрелке в правом конце строки «Категория» и выберите нужную группу функций по тематике.
Представленные в списке группы
Среди названий категорий есть и другие строки. Выбор «Полного алфавитного перечня» приводит к появлению списка всех функций библиотеки. Опция «10 недавно использовавшихся» помогает тем, кто часто выбирает одинаковые формулы для работы. Группа «Совместимость» ‒ это перечень формул из старых версий программы.
Если в категории нашлась нужная функция, кликните на нее левой кнопкой мыши, строка станет синей. Проверьте правильно ли сделан выбор и нажмите «ОК» в окошке или «Enter» на клавиатуре.
Шаг №3: заполнить аргументы
На экране появится окно для записи аргументов функции. Количество пустых строк и тип каждого аргумента зависит от сложности выбранной формулы. Разберем этап на примере логической функции «ЕСЛИ». Добавить значение аргумента можно письменно с помощью клавиатуры. Вбейте в строку нужное число или информацию другого типа. Программа также дает возможность выбирать ячейки, содержимое которых станет аргументом. Вот два способа сделать это:
- Вписать название ячейки в строку. Вариант неудобен по сравнению со вторым.
- Нажать на нужную ячейку левой кнопкой мыши, по краю появится пунктирный контур. Между названиями клеток можно вписать математические знаки, это делается вручную.
Чтобы указать диапазон ячеек, зажмите крайнюю из них и потяните в сторону. Движущийся пунктирный контур должен захватывать все нужные клетки. Быстрое переключение между строками аргументов осуществляется с помощью клавиши Tab.
Элементы интерфейса, которые используются при выборе аргументов
Иногда количество аргументов увеличивается самостоятельно. Не нужно этого пугаться, поскольку так происходит из-за смысла конкретной функции. Такое часто случается при использовании математических формул Менеджера. Аргумент не обязательно состоит из цифр – существуют текстовые функции, где части выражения выражены словами или предложениями.
Шаг №4: выполнить функцию
Когда все значения установлены, а их правильность проверена, нажмите «ОК» или Enter. Нужное число или слово появится в ячейке, куда была добавлена формула, если вы все сделали верно.
Окно для изменения значения аргументов
Если была выбрана не та формула, очистите содержимое ячейки и повторите действия предыдущих шагов. Выясним, как убрать функцию из таблицы:
- выберите нужную ячейку и нажмите Delete на клавиатуре;
- щелкните дважды по ячейке с формулой – когда в ней появится выражение вместо финального значения, выделите его и нажмите клавишу Backspace;
- нажмите один раз на клетку, над которой вы работали в Менеджере функций, и удалите информацию из строки для формул – она располагается чуть выше таблицы.
Теперь функция выполняет свое назначение – делает автоматический расчет и немного освобождает вас от монотонной работы.
Вы можете получить доступ к функции или команде DLL в Microsoft Excel несколькими способами:
с помощью модуля кода Microsoft Visual Basic для приложений (VBA), в котором функция или команда была сделана доступной с помощью выражения Declare;
через лист макросов XLM, используя функции CALL или REGISTER;
непосредственно с листа или из настроенного элемента в пользовательском интерфейсе.
В этой документации не рассматриваются функции XLM. Рекомендуем использовать один из двух других подходов.
Для непосредственного доступа с листа или из настроенного элемента пользовательского интерфейса функцию или команду необходимо сначала зарегистрировать в Excel. Сведения о регистрации команд и функций см. в статье Accessing XLL Code in Excel.
Вызов функций и команд DLL из VBA
Вы можете получать доступ к функциям и командам DLL в VBA с помощью выражения Declare. Это выражение имеет один синтаксис для команд и другой — для функций.
Синтаксис 1: команды
Синтаксис 2: функции
Команды должны возвращать тип void. Функции должны возвращать типы, которые VBA может распознавать ByVal. Это означает, что некоторые типы легче возвращать путем изменения аргументов: строк, массивов, пользовательских типов и объектов.
VBA не может проверить совпадение списка аргументов и возвращаемого значения в модуле Visual Basic со значениями, закодированными в DLL. Это необходимо внимательно проверить самостоятельно, поскольку ошибка может привести к сбою Excel.
Когда аргументы функции или команды не передаются по ссылке или указателю, им должно предшествовать ключевое слово ByVal в объявлении arglist. Если функция C/C++ принимает указатели в качестве аргументов или функция C++ принимает в качестве аргументов ссылки, то их следует передавать ByRef. Ключевое слово ByRef можно не указывать в списках аргументов, поскольку этот режим выбран в VBA по умолчанию.
Типы аргументов в C/C++ и VBA
Следует помнить об указанных ниже фактах при сравнении объявлений типов аргументов в C/C++ и VBA.
Тип String в VBA передается как указатель на структуру BSTR байтовых строк в режиме ByVal и как указатель на указатель в режиме ByRef.
Тип Variant в VBA, содержащий строку, передается как указатель на структуру BSTR строк Юникода из двухбайтовых знаков при передаче в режиме ByVal и как указатель на указатель в режиме ByRef.
Integer VBA — это 16-битный тип, эквивалентный signed short в C/C++.
Long VBA — это 32-битный тип, эквивалентный signed int в C/C++.
VBA и C/C++ допускают определяемые пользователем типы данных (применяются операторы Type и struct соответственно).
VBA и C/C++ поддерживают тип данных Variant, заданный для C/C++ в файлах заголовка Windows OLE/COM как VARIANT.
Массивы VBA — это объекты OLE SafeArrays, определенные для C/C++ в файлах заголовка Windows OLE/COM как SAFEARRAY.
Тип данных Currency в VBA передается как структура типа CY, определенная в файле заголовка Windows wtypes.h, в режиме ByVal и как указатель на него в режиме ByRef.
Ниже приведен пример определений эквивалентных пользовательских типов.
Excel передает только значения Variant указанных ниже типов в определяемую пользователем функцию VBA.
Тип данных VBA | Битовые флаги типа Variant C/C++ | Описание |
---|---|---|
Double | VT_R8 | |
Boolean | VT_BOOL | |
Date | VT_DATE | |
String | VT_BSTR | Строка байтов OLE Bstr |
Диапазон | VT_DISPATCH | Ссылки на ячейку и диапазон |
Переменная, содержащая массив | VT_ARRAY VT_VARIANT | Литеральные массивы |
Ccy | VT_CY | 64-битное целое число, масштабированное для достижения точности 4 знака после запятой. |
Переменная, содержащая ошибку | VT_ERROR | |
VT_EMPTY | Пустые ячейки или пропущенные аргументы |
Вы можете проверить тип переданного аргумента Variant в VBA с помощью VarType, если функция не возвращает тип значений диапазона при вызове со ссылками. Чтобы определить, является ли Variant объектом ссылки Range, можно использовать функцию IsObject.
В VBA можно создавать Variant, содержащие массивы переменных, назначая свойство Value Range для Variant. Ячейки в исходном диапазоне, отформатированные с использованием стандартного денежного формата для действующих региональных параметров, преобразуются в элементы массива типа Currency. Ячейки, отформатированные как даты, преобразуются в элементы массива типа Date. Ячейки, содержащие строки, преобразуются в Variant BSTR с расширенными символами. Ячейки, содержащие ошибки, преобразуются в Variant типа VT_ERROR. Ячейки, содержащие значения True или False типа Boolean, преобразуются в Variant типа VT_BOOL.
Variant хранит значение True как –1, а значение False — как 0. Числа, не отформатированные как даты или суммы валют, преобразуются в Variant типа VT_R8.
Аргументы строк и переменных
Excel внутренне работает со строками Юникода из расширенных символов. Когда пользовательская функция VBA объявляется как принимающая аргумент String, Excel преобразует предоставленную строку в байтовую строку в соответствии с региональными стандартами. Если вам нужно, чтобы функции передавалась строка Юникода, пользовательская функция VBA должна принимать Variant вместо аргумента String. Тогда функция DLL сможет принять эту строку BSTR из расширенных символов типа Variant из VBA.
Чтобы из DLL возвращались строки Юникода в VBA, следует изменить имеющийся аргумент строки Variant. Для этого следует объявить функцию DLL как принимающую указатель на Variant в коде C/C++, а также объявить аргумент в коде VBA как ByRef varg As Variant . Память предыдущей строки следует освободить, а значение новой строки, созданное с использованием строки OLE Bstr, работает только в DLL.
Чтобы байтовая строка возвращалась в VBA из DLL, следует изменить имеющийся аргумент BSTR байтовой строки. Для этого следует объявить функцию DLL как принимающую указатель на BSTR в коде C/C++, а также объявить аргумент в коде VBA как ByRef varg As String.
Строки, переданные такими способами из VBA, следует обрабатывать только с помощью строковых функций BSTR OLE. Это позволит избежать проблем, связанных с памятью. Например, необходимо вызывать функцию SysFreeString, чтобы освободить память, прежде чем перезаписывать переданную строку, и функцию SysAllocStringByteLen или SysAllocStringLen, чтобы выделить место для новой строки.
Вы можете создавать ошибки листов Excel как Variants в VBA с помощью функции CVerr с аргументами, показанными в следующей таблице. Ошибки листов также можно возвращать в VBA из DLL с помощью объектов Variants типа VT_ERROR со следующими значениями в поле ulVal.
Обратите внимание на то, что значение Variant ulVal эквивалентно значению аргумента CVerr с шестнадцатеричным значением x800A0000.
Вызов функций DLL непосредственно с листа
Вы не сможете получить доступ к функциям DLL Win32 с листа, если не используете, к примеру, интерфейсы VBA или XLM либо не сообщите Excel заранее о функции, ее аргументах и типе возвращаемого значения. Этот процесс называется регистрацией.
Ниже приведены способы, которыми можно получить доступ к функциям DLL на листе.
Объявите функцию в VBA, как показано выше, и получите доступ к ней через пользовательскую функцию VBA.
Сначала обеспечьте вызов функции DLL с помощью CALL на листе макросов XLM, а затем — доступ к ней с помощью определяемой пользователем функции XLM.
Используйте команду XLM или VBA, чтобы вызвать функцию XLM REGISTER, которая предоставляет сведения, необходимые Excel для опознания функции при ее вводе в ячейке листа.
Преобразуйте DLL в XLL и зарегистрируйте функцию с помощью функции xlfRegister C API после активации XLL.
Четвертый подход изолированный: код, регистрирующий функции, и код функций хранятся в одном объекте кода. Изменение надстройки не включает изменение листа XLM или модуля кода VBA. Чтобы сделать это с широкими возможностями управления, оставаясь в рамках возможностей API C, необходимо преобразовать DLL в XLL и загрузить получившуюся надстройку с помощью диспетчера настроек. Это позволяет Excel вызывать функцию, предоставленную библиотекой DLL, при загрузке или активации надстройки, из которой затем можно зарегистрировать все функции, которые содержит XLL, и выполнять другие задачи инициализации DLL.
Вызов команд DLL непосредственно из Excel
Команды DLL Win32 недоступны напрямую из диалоговых окон и меню Excel без интерфейса, например VBA, или без предварительной регистрации команд.
Получать доступ к командам DLL можно следующими способами:
Объявите команду в VBA так, как описано выше, и получите к ней доступ с помощью макроса VBA.
Сначала обеспечьте вызов команды DLL с помощью CALL на листе макросов XLM, а затем — доступ к ней с помощью макроса XLM.
Используйте команду XLM или VBA, чтобы вызвать функцию XLM REGISTER, которая предоставляет сведения, необходимые Excel для опознания команды при ее вводе в диалоговом окне, которое запрашивает имя команды макроса.
Преобразуйте DLL в XLL и зарегистрируйте команду с помощью функции xlfRegister C API.
Excel игнорирует возвращаемое значение, если оно не вызывается с листа макросов XLM. В этом случае возвращаемое значение преобразуется в значение TRUE или FALSE. Таким образом, следует возвращать значение 1, если команда выполнена успешно, и 0, если она завершилась с ошибкой или была отменена пользователем.
Память DLL и многочисленные экземпляры DLL
Когда приложение загружает библиотеку DLL, ее исполняемый код загружается в глобальную кучу, чтобы его можно было запустить, и в глобальной куче выделяется место для его структур данных. Windows использует сопоставление памяти, чтобы эти области памяти отображались как часть процесса приложения и приложение могло получать к ним доступ.
Если второе приложение затем загрузит библиотеку DLL, Windows не будет создавать еще одну копию ее исполняемого кода, так как эта память доступна только для чтения. Windows сопоставляет память исполняемого кода DLL с процессами в обоих приложениях. Тем не менее выделяется дополнительное место для личной копии структур данных DLL, а эта копия сопоставляется только со вторым процессом. Это гарантирует, что ни одно из приложений не будет конфликтовать с данными DLL другого приложения.
Это означает, что разработчикам DLL не следует беспокоиться о том, что несколько приложений (или несколько экземпляров одного приложения) будут получать доступ к статическим и глобальным переменным и структурам данных. Каждый экземпляр всех приложений получает собственную копию данных DLL.
Разработчикам DLL следует позаботиться о том, чтобы один и тот же экземпляр приложения не вызывал DLL много раз из разных потоков, так как это может привести к состязанию за данные этого экземпляра. Дополнительные сведения см. в статье Управление памятью в Excel.
Чтобы функции и команды, которые содержит код XLL, были доступны в Microsoft Excel, они:
должны быть экспортированы XLL;
является ли она скрытой или, если речь идет о функции, будет ли она отображаться в мастере функций;
можно ли будет ее вызвать только с листа макроса XLM или также с обычного листа;
если это команда, является ли она функцией листа или эквивалентной функцией листа макроса;
каким будет ее имя в операции экспорта XLL/DLL и какое имя следует использовать в Excel.
Если это функция:
какие типы данных она возвращает и принимает в качестве аргументов;
будет ли она возвращать свой результат, изменяя аргумент на месте;
является ли она постоянной;
является ли она потокобезопасной (поддерживается начиная с Excel 2007);
какой текст мастер вставки функций и редактор автозаполнения должны отображать для поддержки при вызове функции;
к какой категории функций она должна относиться.
Все это реализуется с помощью функции C API xlfRegister, эквивалентной функции XLM REGISTER.
Вызов функций XLL непосредственно из Excel
После регистрации функции листа макроса и листа XLL можно вызывать из любого расположения, откуда можно вызвать встроенную функцию:
из формулы массива или одной ячейки на листе;
из формулы массива или одной ячейки на листе макроса;
из определения имени;
из полей условий и ограничений в диалоговом окне условного форматирования;
из других надстроек через функцию C API xlUDF;
Можно получить ссылку на ячейку или диапазон ячеек вызова в нужной функции с помощью функции C API xlfCaller. Если функция вызывалась из выражения условного форматирования ячейки, все равно возвращается ссылка на связанную ячейку или несколько ячеек, поэтому нельзя предположить, что формула с ячейкой содержит функцию XLL. Если функция вызывалась из пользовательской функции VBA (UDF), xlfCaller также возвращает адрес ячеек, которые вызывали функцию VBA. Дополнительные сведения см. в статье xlfCaller.
Excel также вызывает код функции XLL из диалоговых окон Мастер вставки функции и Замена. Может потребоваться ограничить обычное выполнение вашего кода в случае диалогового окна Вставка аргументов функции, особенно в тех случаях, когда выполнение функции может занять много времени. Чтобы обнаружить, вызывается ли функция из одного из таких диалоговых окон, необходимо реализовать в проекте код, который будет просматривать все открытые окна, чтобы определить, является ли окно переднего плана одним из таких диалоговых окон, и, если да, какое именно.
Вызов команд XLL непосредственно из Excel
После регистрации команды XLL можно вызывать всеми способами, которыми можно вызвать другие пользовательские макросы:
посредством связывания с объектом элемента управления, встроенным в лист;
из диалогового окна "Выполнить макрос";
из настраиваемого элемента меню или панели инструментов;
с помощью сочетаний клавиш, заданных при регистрации команды;
в качестве команды, которую следует выполнять при обработке указанного события.
Команды XLL являются скрытыми таким образом, что они не отображаются в списке доступных макросов в диалоговых окнах Excel. Но они могут быть введены вручную в поле имени макроса. В таких диалоговых окнах необходимо вводить заданное при регистрации имя, а не имя экспорта DLL.
Excel игнорирует возвращаемое значение, если оно не вызывается с листа макросов XLM. В этом случае возвращаемое значение преобразуется в значение TRUE или FALSE. Таким образом, следует возвращать значение 1, если команда выполнена успешно, и 0, если она завершилась с ошибкой или была отменена пользователем.
Можно получить сведения о том, как команда была вызвана, с помощью функции C API xlfCaller. Дополнительные сведения см. в статье xlfCaller.
Начиная с Excel 2007 пользовательский интерфейс существенно отличается от более ранних версий. В большинстве случаев по-прежнему поддерживаются функции C API, позволяющие выполнять операции добавления и удаления настраиваемых строк меню, меню, вложенных меню, элементов меню, настраиваемых панелей инструментов и кнопок панели инструментов. Тем не менее они не всегда могут обеспечить доступность добавляемого элемента способом, который знаком вашим пользователям. Следует тщательно проверить, является ли добавленная функция по-прежнему доступной, или реализовать пользовательскую настройку под определенную версию. Начиная с Excel 2007 пользовательский интерфейс лучше всего настраивать с использованием модуля управляемого кода, который затем можно тесно связать с вашими командами XLL.
Кто это может сделать? Человек, имеющий статус главного пользователя. Одним словом, что нужно сделать для того, чтобы совместная работа с документом стала не просто возможной, но и эффективной?
Особенности работы с общим файлом Excel
Работа с общим файлом в Excel имеет свои особенности. Так, некоторые действия недоступны для пользователей:
- Создание таблиц.
- Управление сценариями, включая их просматривание.
- Удаление листов.
- Пользователи не имеют возможности соединять несколько ячеек или наоборот, разбивать ранее объединенные.
- Любые операции с XML данными.
Как можно обойти эти ограничения? Необходимо просто снять общий доступ, а потом его вернуть, когда появится такая необходимость.
Вот еще таблица с некоторыми задачами, которые возможно или невозможно выполнить, если вы работаете вместе с несколькими людьми над одной таблицей.
Как сделать совместный доступ к файлу Excel
Сначала нужно понять, какой файл необходимо сделать доступным для редактирования сразу несколькими людьми. Это может быть как новый файл, так и уже существующий.
Настройка параметров
Все необходимые для создания совместного доступа к файлу в Excel действия находятся в разделе «Доступ к книге», который можно отыскать, перейдя на вкладку «Рецензирование».
Всплывет окно, в котором есть две вкладки. Нас интересует первая, которая открывается автоматически. Нам нужно поставить флажок возле пункта, отмеченного на скриншоте красным прямоугольником. С его помощью мы даем возможность нескольким пользователям управлять документом.
2
После того, как мы открыли доступ для редактирования, нам нужно его настроить. Для этого открываем вторую вкладку.
3
После внесения параметров подтверждаем свои действия. Для этого делаем левый клик по клавише «ОК». Совместный доступ может быть открытым для любой книги как новой, так и уже существующей. В первом случае нужно будет придумать имя для нее.
После этого нужно сохранить файл на компьютере.
Важно! Формат должен быть таким, чтобы файл мог открыть каждый пользователь со своей версии электронных таблиц.
Открытие общего файла
Сохранить файл нужно на сетевом ресурсе или папке, к которой имеют доступ участники, которым нужно использовать этот файл. После того, как будет выбрана директория, нам осталось только нажать кнопку «Сохранить».
При этом недопустимо использование веб-сервера, чтобы сохранить общий файл.
После выполнения всех описанных выше операций нужно проверить, получается ли подключать других людей. Для этого необходимо открыть вкладку «Данные» и там непосредственно под ней найти пункт «Подключения». Если на него нажать, появляется возможность изменить ссылки или связи. Если соответствующей кнопки нет, то нет связанных файлов.
4
Далее открывается вкладка «Состояние», с помощью которой возможно проверить связи. О том, что все хорошо, можно узнать по наличию кнопки «ОК».
Как открыть книгу Excel с совместным доступом
Excel позволяет также открыть книгу с совместным доступом. Чтобы это сделать, нужно нажать на кнопку Office. Когда появится всплывающая панель, нам необходимо выбрать пункт «Открыть» и выбрать ту книгу, которая будет использоваться для общего доступа. После этого опять нажимаем на кнопку Office, и открываем окно «Параметры Excel», которую можно найти внизу.
В левой части появившегося окна будет возможность выбрать категорию настроек, но нас интересует самая первая, где приводятся самые общие параметры.
5
Далее переходим в пункт «Личная настройка», где нужно указать данные, позволяющие отфильтровать пользователей – имя пользователя, никнейм.
После выполнения этих операций появляется возможность отредактировать информацию в документе или же добавлять какие-то данные. Не забудьте сохранить изменения после их внесения.
При этом могут иногда при сохранении появляться проблемы. Например, общий доступ открывается только для первого открытия, и при попытке открыть документ во второй раз программа выдает ошибку. Это может происходить по следующим причинам:
- Если в одной и той же ячейке вносят данные сразу несколько участников. Или любую другую часть.
- Формирование журнала изменений, из-за которого книга увеличивается в размере. Это приводит к неполадкам.
- Пользователь был удален из совместного доступа. В таком случае сохранить изменения не получится только на его компьютере.
- Сетевой ресурс перегружен.
- Удалить журнал изменений или стереть с него лишнюю информацию.
- Убрать лишнюю информацию внутри самого документа.
- Перезапустить совместный доступ.
- Открыть документ Excel в другом офисном редакторе, а потом снова сохранить его в формате xls.
Правда, в последних версиях эта ошибка случается не так часто, как в старых.
Как посмотреть действия участников
В ходе совместной работы нужно постоянно следить, чтобы какой-то из участников чего-то не испортил. Поэтому нужно научиться понимать, какие действия были совершены кем-то из них. Для этого надо выполнить следующие действия.
- Перейти на вкладку «Рецензирование», и там найти пункт «Исправления». В меню осуществляем выбор пункта «Выделить исправления». 6
- Далее появится окно, в котором можно узнать, какие изменения были внесены пользователями. Этот список формируется автоматически. В том, что это действительно так, можно убедиться, посмотрев, стоит ли галочка возле соответствующего пункта этого диалогового окна. 7
Также можно вносить и другие изменения, выставив соответствующие галочки в нужных местах.
12
Список изменений не лежит мертвым грузом. Главный пользователь может рецензировать правки других участников, подтверждая или отклоняя их. Как это сделать?
- Перейти на вкладку «Рецензирование». Там находится меню «Исправления», где пользователь может управлять исправлениями. Во всплывающей панели нужно выбрать опцию «Принять/отклонить исправления», после чего будет показано окно, в котором отображаются исправления. 13 14
- Отбор правок может осуществляться по тем же критериям, что были описаны ранее: по времени, конкретному пользователю или в определенном диапазоне. После установки необходимых параметров нажимается клавиша ОК.
- Далее отобразятся все коррективы, которые соответствуют условиям, выставленным на предыдущем этапе. Можно согласиться с конкретной правкой или отклонить ее, нажав на соответствующую кнопку в нижней части окна. Также возможно пакетное принятие коррективов или их отклонение. 15
Теперь нужные коррективы были оставлены, а лишние – удалены.
Как удалить пользователя из файла Excel
Время от времени появляется необходимость убирать пользователей из совместного редактирования. Причин может быть огромное количество: им было дано другое задание, участник начал вносить правки с другого компьютера и так далее. Реализовать эту задачу в Excel вовсе несложно.
Сначала открываем вкладку «Рецензирование». Там находится группа «Изменения», где есть опция «Доступ к книге».
16
После этого на экране появится то же самое окно, которое мы видели ранее. С перечнем всех людей, которые могут вносить изменения в таблицу, можно ознакомиться на вкладке «Правка». Чтобы убрать пользователя, который нам не нужен в данный момент, нужно найти его в этом списке, выделить путем нажатия левой кнопки мыши и нажать на кнопку «Удалить», которая находится ниже.
Далее Эксель предупредит пользователя, что коррективы, внесенные этим участником, могут не быть сохранены, если в данный момент он вносит в книгу изменения. Если вы согласны, то нажимайте «ОК», и пользователя теперь в совместном использовании не будет.
18
Как ограничить использование общей книги
Самый лучший способ ограничить использование общей книги – это удалить пользователя. Если это не подходит, можно выставлять право на просмотр или редактирование книги конкретным участником.
При этом важно помнить, что некоторые ограничения встроены в совместное использование по умолчанию. Они были описаны выше. Давайте их вспомним, поскольку повторение – мать учения.
- Запрещено создание умных таблиц, которые автоматически обновляют данные и имеют множество других возможностей.
- Нельзя управлять сценариями.
- Есть встроенное ограничение на удаление листов, соединение или разъединение ячеек.
- Выполнение всех операций с XML-данными. Простыми словами, есть ограничения на структурирование большого количества данных, в том числе, и редактирования их массивов. XML – это один из самых непонятных типов файлов для начинающих пользователей, но на самом деле, это все просто. С помощью файлов этого типа можно передавать данные, внося пакетные изменения в документ.
Проще говоря, совместное редактирование дает возможность осуществлять стандартные операции с документом, но более профессиональные опции доступны лишь для одного человека. Это объясняется тем, что те же макросы или пакетные изменения с помощью XML несколько сложнее откатить.
Чтобы сделать это, необходимо выполнить следующие действия.
- Открыть вкладку «Рецензирование», перейти на пункт «Исправления» и во всплывающем меню выбрать пункт «Выделить исправления».
- После этого появляется окошко, в котором нужно снять отметки возле пунктов «Пользователем» и «В диапазоне».
- После этого появляется журнал изменений, который необходим для бекапа данных.
После этого можно отключать совместный доступ. Для этого на той же вкладке на ленте нужно выбрать пункт «Доступ к книге» и снять отметку «Разрешить изменять файл нескольким пользователям».
Все, теперь совместный доступ отключен.
Таким образом, в Excel настроить совместное редактирование довольно легко. Конечно, есть некоторые ограничения, которые не дают использовать документ в полной мере. Но решаются они довольно просто, достаточно на время отключить совместный доступ, а потом его включить, когда нужные правки были внесены.
Читайте также: