Страницы: 1
RSS
Как прикрепить произвольные файлы к книге Excel, а потом их извлечь или запустить
 
Хочу поделиться своим сегодняшним макросом, суть которого описана в названии темы.  
 
Более подробное описание, и пример использования - у меня на сайте:  
http://excelvba.ru/tools/Attachments  
 
Вдруг кому пригодится...  
 
PS: Тестировал на разных файлах - без проблем прикрепляются и 15-мегабайтные файлы  
(время загрузки\выгрузки такого файла - около 35 секунд)  
Маленькие файлы прикрепляются и извлекаются практически моментально.  
 
Для хранения данных файлов используется скрытый лист.  
 
 
Хотелось бы выслушать критику - всё ли правильно сделано, какие возможны проблемы при использовании.
 
честно говоря, сказать пока особо нечего - у меня вроде бы нет такой нужды (или я её в упор не вижу:)  
на всякий случай выкладываю ссылку на что-то подобное.  
возможно, EducatedFool сам захочет сравнить :)  
http://www.cyberforum.ru/vba/thread95105.html#post3181819  
 
я в детали не вникал - ни там, ни здесь.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
а в чем прикол то? ) Считать побитово файл и записать это на лист? Или я чего не понимаю...  
 
Критику? Пожалуйста :)  
1. Я не понимаю, почему ты не объявляешь переменные  
2. Стиль, стиль, стиль  
3. WB - это warner brothers? )))  
4. После этой надписи  
' ======================================= private functions ==================================  
идут публичные функции и процедуры  
5. И все-таки Option Explicit  
 
 
p.s.: считаю не целесообразным размещать готовые разработки на планете. Здесь ничего потом не найдешь, да и изменения (если потребуется) вносить неудобно. Я бы разместил здесь: http://www.excelworld.ru/forum/3  
 
Ну а так все круто )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
> а в чем прикол то? ) Считать побитово файл и записать это на лист?  
 
ну типа того  
просто мне понадобилось хранить некоторые файлы внутри книги Excel  
(картинки, exe), а ничего готового (удобного в использовании) на просторах интернета я не нашел.  
 
вот и пришлось изобретать велосипед)  
 
Да и тут на форуме (а, может, и не на этом) кто-то спрашивал, как прикрепить файл .ico к книге Excel, а потом извлечь его.  
А тут как раз готовое решение - пара строк кода, и файл сохранён\извлечен.  
 
Можно быстро прикреплять любые исполняемые файлы, музыку, DLL и т.д. и т.п.
 
Сама идея хранения файлов в книге интересна, правда, не до конца понимаю зачем оно. Наверно, здесь разумнее использовать access или "или" )  
 
В качестве идеи: еще можно сжимать файлы перед хранением
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Касательно объявления переменных я уже говорил как-то  
(мне просто лень их объявлять - и без этого все работает хорошо),  
а вот касательно этого:  
 
> 2. Стиль, стиль, стиль  
 
тут что не так?  
какой должен быть стиль?  
что в моём стиле не так, помимо вышеперечисленного?
 
> В качестве идеи: еще можно сжимать файлы перед хранением  
 
а тут делать даже ничего не надо  
Файлы сжимаются автоматически, если в качестве файла Excel использовать книгу формата Excel 2007 (например, XLSB)  
 
Пример из прикреплённого к статье файла:  
 
Суммарный объём вложений 830 Кб  
Размер книги Excel 466 Кб
 
> правда, не до конца понимаю зачем оно  
 
Ну вот взломал, например, пользователь твой файл,  
и ты хочешь запустить у него на компе exe файл, чтобы заблокировать возможность использования взломанной версии программы  
 
интернета у него на компе нет, так что скачать из инета что-либо проблематично.  
 
А тут - одна строка кода, и исполняемый файл запустился и заблокировал взлом программы (например, закрыл окно редактора VBA)  
Это я так, к примеру.    
 
Мне просто для решения одной задачи понадобилось (впервые за несколько лет),  
а так, потребность в подобной штуке раньше тоже возникала пару раз.  
(но тогда у меня не хватило терпения доделать такой макрос)
 
По стилю см. файл  
 
> А тут - одна строка кода, и исполняемый файл запустился и заблокировал взлом программы  
исполняемые файлы так просто не запустишь. Политика безопасности.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Я такое уже видел раньше - так сохранялся в листе jpg файл. После запуска он извлекался во временную папку и отображался на листе.  
Где видел - не помню...
 
у меня видел : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
http://www.planetaexcel.ru/forum.php?thread_id=30610&page_forum=2&allnum_forum=27
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Да, точно - твой пример у меня сохранён.  
Но я видел и другой, где было реализовано всё полностью, примерно как у Игоря - процедуры сохранения и извлечения файла. Но правда только одного.
Страницы: 1
Наверх