Как прикрепить файл в ячейку excel

Узнаем как внедрять любые типы документов в файл Excel для возможности открытия документов непосредственно из книги.

Приветствую всех, дорогие читатели блога TutorExcel.Ru.

Для тех кто больше предпочитает формат видео — приятного просмотра, для любителей же текста приятного чтения.

Давайте для начала подумаем для чего вообще это может полезно?

Помимо работы с данными внутри книги Excel иногда бывает необходимо к документу приложить какие-либо внешние данные в виде дополнительного файла. Так как вместо отдельного хранения файлов зачастую удобней внедрить их все в документ.

Это позволяет получить более быстрый доступ к внешним файлам, повышает удобство просмотра и работы с файлом, в общем и целом в определенных случаях весьма полезный инструмент.

Как внедрить документ в Excel?

Стоить отметить, что инструментом внедрения пользуются достаточно редко, поэтому нужную вкладку не так-то просто найти.
Переходим во вкладку Вставка -> Текст -> Объект:

Далее щелкаем мышкой по кнопке Объект и перед нами появляется всплывающее окно с настройками вставки:

Excel предлагает нам 2 основные опции для внедрения файлов в книгу:

  • Добавить новый объект (вкладка Новый);
  • Добавить существующий файл (вкладка Из файла).

А также возможность отображения файла в виде значка и создания связи с файлом. Давайте поподробнее остановимся на каждом из имеющихся вариантов.

Создание нового документа

Остаемся в текущей вкладке Новый и в зависимости от наших задач в поле Тип объекта выбираем подходящий тип файла (из наиболее используемых типов тут присутствуют документы Microsoft Word и PowerPoint), далее нажимаем OK и в текущей книге Excel встроенный окном появится новый документ.

К примеру, если выбрать тип файла Microsoft Word, то в окне Excel появится встроенное окно с Word, где доступны все функции программы и мы можем начать набирать любой текст:

Аналогичный пример при работе с Microsoft PowerPoint:

Если нам нужно, чтобы внедряемый документ вставлялся не как рабочее окно программы, а более компактно, то внешний вид отображения файла можно поменять на отображение с помощью иконки.

В этом случае при создании нового документа поставьте флажок напротив поля В виде значка, далее выберите вид отображаемой иконки с помощью кнопки Сменить значок (вид меняется в зависимости от программы внедряемого файла), либо оставьте текущий вариант иконки, а также в случае необходимости поменяйте подпись:

В результате в рабочем окне Excel появится изображение выбранной иконки и по двойному щелчку мыши по иконке будет открываться исходный документ:

Теперь перейдем ко второму варианту вставки документа.

Внедрение существующего файла

Помимо создания нового документа мы можем добавить уже готовый существующий файл. В этом случае вверху начального окна с настройками выбираем вкладку Из файла:

Далее для добавления файла нажимаем кнопку Обзор и вставляем нужный нам файл (как и в предыдущем случае мы дополнительно можем задать значок):

Еще одной важной особенностью при вставке документа является возможность связать вставляемый файл с исходным документом, для этого нужно поставить галочку напротив поля Связь с файлом.

В этом случае при внесении каких-либо изменений в исходный файл эти изменения отобразятся в прикреплённом файле. Однако, обратите внимание, что связь будет работать только в том случае, если у конечного пользователя (который работает с файлом) будет доступ к этому файлу.

Другими словами, если внедряемый файл сохранен в общем доступе, то связь будет работать, если же файл сохранить в локальном месте, куда нет доступа у читателя, то каждый раз будет открываться первоначальная версия файла.

Читайте также:  Как добавить проценты в диаграмму в excel

Спасибо за внимание!
Если у вас остались вопросы по теме статьи — делитесь своими мыслями в комментариях.

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Для включения содержимого из других программ, таких как Word или Excel, можно использовать связывание и внедрение объектов (OLE).

Технология OLE поддерживается многими различными программами, и технология OLE используется для создания содержимого, которое создается в одной программе, доступной в другой программе. Например, вы можете вставить документ Office Word в книгу Office Excel. Чтобы узнать, какие типы контента можно вставить, в группе текст на вкладке Вставка нажмите кнопку объект . В поле тип объекта отображаются только программы, установленные на вашем компьютере и поддерживающие объекты OLE.

При копировании данных между Excel или любой программой, поддерживающей технологию OLE, например Word, вы можете скопировать эти данные как связанный объект или внедренный объект. Основные различия между связанными и внедренными объектами находятся в том месте, где хранятся данные, а также о том, как объект будет обновлен после того, как вы поместите его в конечный файл. Внедренные объекты хранятся в книге, в которой они вставлены, и не обновляются. Связанные объекты сохраняются как отдельные файлы, и их можно обновить.

Связанные и внедренные объекты в документе

1. внедренный объект не имеет соединения с исходным файлом.

2. связанный объект связан с исходным файлом.

3. исходный файл обновляет связанный объект.

Когда следует использовать связанные объекты

Если вы хотите, чтобы информация в конечный файл обновлялась при изменении данных в исходный файл, используйте связанные объекты.

При использовании связанного объекта исходные данные сохраняются в исходном файле. В конечном файле выводится представление связанных данных, в котором хранятся только исходные данные (и размер объекта, если объект является диаграммой Excel). Исходный файл должен быть доступен на вашем компьютере или в сети для поддержания связи с исходными данными.

Связанные данные могут быть обновлены автоматически при изменении исходных данных в исходном файле. Например, если выбрать абзац в документе Word, а затем вставить его как связанный объект в книгу Excel, то при изменении данных в документе Word можно обновить данные в Excel.

Использование внедренных объектов

Если вы не хотите обновлять скопированные данные при изменении в исходном файле, используйте внедренный объект. Версия исходного кода полностью внедрена в книгу. Если вы копируете данные как внедренный объект, конечный файл требует больше места на диске, чем при связывании данных.

Когда пользователь открывает файл на другом компьютере, он может просматривать внедренный объект без доступа к исходным данным. Так как внедренный объект не содержит связей с исходным файлом, объект не обновляется при изменении исходных данных. Чтобы изменить внедренный объект, дважды щелкните объект, чтобы открыть его и изменить его в исходной программе. Исходная программа (или другая программа, поддерживающая редактирование объекта) должна быть установлена на вашем компьютере.

Изменение способа отображения объекта OLE

Вы можете отобразить связанный объект или внедренный объект в книге так, как она отображается в программа-источник или в виде значка. Если книга будет просматриваться в Интернете и вы не планируете печатать книгу, вы можете отобразить объект в виде значка. Это уменьшает объем отображаемого пространства, занимаемого объектом. Для просмотра, в котором нужно отобразить сведения, дважды щелкните значок.

Читайте также:  Как найти html код страницы

Можно ли прикрепить (вложить) произвольные файлы в обычную книгу Excel?
А потом извлечь эти файлы в заданную папку, и работать с ними?

Казалось бы, Excel такого не позволяет. (а если и позволяет, то извлечь вложенные файлы без из запуска — весьма проблематично)
Но, при помощи макросов, можно реализовать что угодно (и сохранениеизвлечение файлов в том числе)

Теперь прикрепить к книге Excel любой файл, а затем извлечь его в любую папку под заданным именем, можно при помощи нескольких строк кода!

В прикреплённом к статье файле находятся 2 модуля класса (AttachedFiles и AttachedFile), а также примеры их использования в виде макросов, позволяющих управлять вложениями в книге Excel.

Пример использования функционала модулей класса для сохранения в книге Excel исполняемого файла, с последующим извлечением:

Если вам требуется прикрепить к книге Excel лишь один небольшой файл (например, маленькую картинку или иконку),
воспользуйтесь возможностью сохранения файлов в виде VBA-функций

Рассмотрим доступные свойства и методы классов, используемых для работы со вложениями.

Класс AttachedFiles позволяет управлять вложенными файлами.

  • Функция GetAllFilenames () возвращает коллекцию имён файлов, прикреплённых к документу Excel
    (если нет ни одного прикреплённого файла, возвращается пустая коллекция)
  • Функция GetAllFiles () возвращает коллекцию объектов типа AttachedFile (прикреплённый файл)
    (если нет ни одного прикреплённого файла, возвращается пустая коллекция)
    Свойства и методы объекта AttachedFile см. ниже.
  • Функция AttachmentExist (ByVal filename$) позволяет проверить наличие вложения с именем файла filename$
    (если книга содержит вложенный файл с таким именем, возвращается TRUE, иначе — FALSE)
  • Функция AttachNewFile (Optional ByVal filepath$, Optional ByVal filename$, Optional Overwrite As Boolean = True)
    предназначена для добавления (прикрепления) нового файла, полный путь к которому задан в параметре filepath$.
    Если параметр filepath$ не задан, то будет выведено диалоговое окно, позволяющее выбрать прикрепляемый файл.
    Параметр filename$ служит для указания имени файла, под которым он будет храниться в книге Excel. Если этот параметр не задан, файл сохраняется под тем именем, которое он имел в момент загрузки.
    Парамерт Overwrite, если он равен TRUE (по-умолчанию), позволяет заменять старые вложения новыми без лишних вопросов. При его значении FALSE будет выведено диалоговое окно с вопросом, заменить старый вложенный файл на новый, или нет.
  • Функция MaxFileSize () возвращает максимальный допустимый размер прикрепляемого файла
    (для файлов Excel 97, 2000, XP, 2003 можно прикрепить файлы размером до 31 мегабайта , а для Excel 2007б 2010, 2013 — максимальный размер прикрепляемого файла составляет 500 МБ)
  • Функция GetAttachment (ByVal filename$) возвращает вложение с именем filename$ в виде объекта типа AttachedFile
    Таким способом, мы получаем возможность обратиться по имени к любому из вложенных файлов (чтобы его запустить, сохранить, удалить, и т.д.)
  • Метод DeleteAllAttachments удаляет ВСЕ вложенные файлы из книги Excel

У класса AttachedFiles есть и некоторые свойства, доступные для чтения и изменения:

  • Свойство WB (As Workbook) — ссылка на книгу Excel, с которой производятся манипуляции.
    По-умолчанию, WB ссылается на текущую книгу Excel (ThisWorkbook), но можно работать и с любой другой открытой книгой, — для этого достаточно добавить строку кода типа
    Set FileManager.WB = ActiveWorkbook или Set FileManager.WB = Workbooks("test.xls")
  • Свойство AutoSaveWorkbook (As Boolean, по умолчанию = FALSE) — при установке в TRUE позволяет автоматически сохранять изменения в книге при добавлении или удалении вложенных файлов
  • Свойство SilentMode (As Boolean, по умолчанию = FALSE) — при установке в TRUE запрещает вывод информации о процессе извлечения или добавления файла в строку состояния Excel, а также блокирует все уведомления. Таким образом, извлекать и запускать файлы можно в скрытом режиме — пользователь ничего не заметит.
    По-умолчанию (при SilentMode = FALSE), в строке состояния Excel отображается ход выполнения действий с файлами (своего рода прогресс-бар)
Читайте также:  Как наложить озвучку на видео

Второй модуль класса — AttachedFile — позволяет работать с конкретным вложенным файлом.

  • Метод SaveAs (Optional ByVal filepath$) позволяет извлечь (сохранить) вложенный файл по заданному пути filepath$.
    Если путь filepath$ не задан, макрос выдаёт диалоговое окно сохранения файла, где можно указать папку, куда будет извлекаться файл, и задать имя создаваемого файла.
  • Метод Delete безвозвратно удаляет вложенный в Excel файл
  • Метод Run — позволяет запустить (открыть в программе по-умолчанию) вложенный файл.
    Для этого, файл автоматически извлекается во временную папку Windows, и оттуда уже выполняется запуск созданного файла.
  • Функция IsCorrect возвращает TRUE, если размер области данных файла соответствует значению длины файла (которое сохранено при добавлении файла в книгу Excel)
    Если часть данных на скрытом листе (где хранятся вложенные файлы) затерта, функция вернёт значение FALSE, что говорит о нарушении целостности файла.
    Внимание: проверка производится медленно, т.к. при этом производится извлечение данных с листа (аналогично извлечению файла на диск). И, если прикреплённые файлы большие (сотни килобайтов и больше), то проверка каждого файла может длиться от нескольких секунд до минут (для многомегабайтных файлов)
  • Функция FileSizeTXT возвращает размер файла в доступном ткестовом виде. Например, 129 Кб, 3.4 Кб, 12.7 Мб

Свойства класса AttachedFiles предназначены только для чтения (хотя их изменение возможно, но нежелательно):

  • Свойство filename (As String) содержит имя вложенного файла с расширением
  • Свойство AttachDate (As Date) хранит дату и время добавления файла в книгу Excel
  • Свойство FileSize (As Long) возвращает размер файла в байтах. Результат возвращается в виде числа, в отличии от функции FileSizeTXT, выдающей текстовое значение.

Принципы работы программы:

  • файлы сохраняются на «очень скрытом» листе с названием «SheetForAttachedFiles»
  • при загрузке, файлы считываются в бинарном виде, и каждый байт преобразуется в 16-ричное представление.
    Например, файл, состоящий из 5 байтов, будет преобразован в текстовую строку длиной 10 символов примерно такого вида: 3395B3D7FF
  • Каждому файлу отводится отдельный столбец на листе:
    (щелкните на картинке для увеличения)
  • В каждой ячейке хранится 500 байтов данных. (1000 символов)
    Это значение можно изменить в строке Private Const BYTES_PER_CELL& = 500 модуля класса AttachedFiles
  • Количеством данных в одной ячейке вызвано ограничение на размер файла.
    Для Excel 2003 оно составляет (65536 — 6) строк * 500 байтов в ячейке = 32765000 байтов = 31,24 Мб
    В Excel 2007 и более новых версиях строк намного больше, поэтому там можно прикреплять файлы размером для 500 МБ (правда, очень сомневаюсь, что Excel выдержит такое издевательство над собой)
  • Максимальное число прикрепляемых файлов ограничено числом столбцов на листе Excel.
    В большинстве случаев, 255 файлов — это более чем достаточно. В Excel 2007-2010-2013 можно прикрепить более 16 тысяч файлов.
  • Данные файлов не шифруются, но при необходимости это несложно реализовать.
Вложение Размер Загрузки Последняя загрузка
AttachFiles.xlsb — файл с модулями класса и примерами работы со вложенными файлами 272.49 КБ 33 2 года 47 недель назад
AttachFiles.zip — тот же файл, но в формате XLS для Excel 97-2003 93.39 КБ 3 5 лет 28 недель назад
  • 50947 просмотров

Комментарии

Извлекать можно в любую папку (дописав в коде макроса для кнопки путь для извлечения, по аналогии с макросами для других кнопок)
Файл перезаписывается при очередном запуске

Adblock detector