В любой программе, которая претендует на принадлежность к ПО, есть "защита от дурака". Макрос - это программа, использование которой заведомо предполагается временным. В связи с этим наращивать в макросе "арсенал защиты" не представляется целесообразным. P.S. Я не имею в виду функции, надстройки и т.п..
================================================================= припишу сюда первые сообщения, чтобы нить обсуждения не потерялась(The_Prist):
Цитата
И еще... Структура таблиц во всех "собираемых" файлах должна быть единой для всех файлов, ибо макрос - это "программа на 1-ой ножке": для корректной работы должны соблюдаться все условия, которые макрос "оговаривает". Прошу пардону за провокацию для обсуждения вопросов, не имеющих к теме прямого отношения. Говоря о ПО в сравнении с макросом, я имела в виду прикладное ПО, которое, как правило, находится всегда в состоянии изменений не только по прикладным вопросам, но и в части той самой "защиты от дурака". Оригиналы не перенесенных сообщений можно найти здесь: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=60396
Мотя, Ваша категоричность иногда убивает наповал Макрос - это мини-программа, процедура или функция. Любая программа состоит из "кирпичиков" - блоков кода, предназначенных для различных целей. И если такой блок не предусмотреть в "программе, которая претендует на принадлежность к ПО" - какое отличие она будет иметь от макроса. в котором тоже не предусмотрена такая защита? Я имею в виду и "функции, надстройки и т.п.."
Мотя пишет: В любой программе, которая претендует на принадлежность к ПО, есть "защита от дурака"
Например? Есть программы с заведомо FreeWare-ным распространением(та же Опера или uTorrent). Они не претендуют на принадлежность к ПО? Кажется, Вы сильно путаете понятия. ПО - программное обеспечение. А к этому можно отнести даже простейшую программу вроде калькулятора. И если в ней не будет защиты - она не станет от этого не являться программой.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Мотя, меня тоже убивает Ваша категоричность по отношению к макросам - "на одной ножке"... Ctrl+F - это ведь по сути тоже макрос, только написанный на другом языке. Если написать его аналог на VBA - где тут будет "одна ножка"?
Цитата
Мотя пишет: Макрос - это программа, использование которой заведомо предполагается временным.
Уважаемый Юрий М! Не могу понять Вашу дополнительную реплику: я ведь уже уточнила, что я имею в виду относительно макросов и ПО. В ситуации, когда Генератор Отчетов в прикладном ПО, используемом в организации, "не успевает" за потребностями пользователей, на помощь приходят экспорт из ПО в EXCEL и пользовательские макросы в нем. Как известно, прикладное ПО находится в постоянном развитии, его Генератор Отчетов - также. Поэтому потребность в использовании ранее созданных макросов может вполне закончиться.
Уйдем в глубокий ОФФ(позже попробую перенести отдельные сообщения данной темы в Курилку):
Мотя, Вы уж извините, но Вы сейчас какой-то бред несете. Или я просто не дорос до его понимания :-) Серьезно, без всяких шуток. Скажите, какая по-Вашему разница между ПО и прикладным ПО? Насколько знаю я Прикладное ПО - это одна из разновидностей ПО, которое не может существовать без системного ПО(ОС как правило). И утверждение, что прикладное ПО всегда в развитии не верно, т.к. его развитие напрямую зависит от его области применения и его создателя. Если такое ПО не пользуется спросом(Вы удивитесь, когда узнаете сколько на свете бесполезных программ, развивать которые никому и в голову не придет) - оно и обновляться не будет, ибо смысла нет развивать то, что никто не использует. Т.е. в рамках обсуждаемого вопроса, можно сказать, что VBA не является полноценным инструментом для создания ПО, т.к. созданные им коды могут использоваться исключительно внутри отдельного приложения, в которое он встроен(Microsoft Office). Прошу не приплетать сюда VBS и пр. VBS можно создать и использовать без VBA(как и любую программу - в текстовом файле). Речь же о VBA только. Именно поэтому, а не по критерию "защиты от дурака" или развитию самой программы(кода).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Имейте в виду, за нарушение правил в этом случае я не отвечаю...
Цитата
The_Prist пишет: Если такое ПО не пользуется спросом(Вы удивитесь, когда узнаете сколько на свете бесполезных программ, развивать которые никому и в голову не придет) - оно и обновляться не будет, ибо смысла нет развивать то, что никто не использует.
Я ведь уточнила - речь идет об используемом прикладном ПО. Информация об огромном количестве бесполезных, а также безнадежно устаревших программ доступна всем.
Цитата
Речь же о VBA только.
А я о чем?
Цитата
The_Prist пишет: Насколько знаю я Прикладное ПО - это одна из разновидностей ПО, которое не может существовать без системного ПО(ОС как правило).
Мотя пишет: В любой программе, которая претендует на принадлежность к ПО, есть "защита от дурака". Макрос - это программа, использование которой заведомо предполагается временным.
Цитата
Мотя пишет: Говоря о ПО в сравнении с макросом, я имела в виду прикладное ПО, которое, как правило, находится всегда в состоянии изменений не только по прикладным вопросам, но и в части той самой "защиты от дурака"
Поэтому мое сообщение никак не противоречит Вашим утверждениям. Особенно в части защиты от дурака только в программах, претендующих на принадлежность к ПО. И как раз про состояние изменения я ничего не понял. Вы же сами пишите "прикладное ПО, которое как правило...". А если не как правило? Тогда что? Если программа не изменяется - она не ПО? Как минимум - не прикладное? Но тогда макросы - самое настоящее прикладное ПО - они изменяются чаще других, т.к. просты в освоении. В том числе в плане защиты от дурака. Потому что другой там и нет. Вопрос-то в этом. У меня, по крайней мере. Я не высказываю претензий к Вам, ни в коей мере. Просто подумал, что Вы не очень понимаете что такое прикладное ПО и что к нему относится. Вот и все. Но, как понимаю, Вы знаете, что это, но я просто не понимаю Ваших объяснений.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Кстати, про временность макросов: работал в одно крупной компании. И т.к. программисты 1С всегда были очень заняты, а время как всегда не терпит - попросили меня создать программу учета документооборота(сканирование ШК пакетов, автоматический их учет, ведение БД о передвижении документов между отделами и внутри архива и т.п.). Написана была на VBA. Использовался Excel. И работала она более двух лет, пока я не уволился оттуда. Дорабатывалась, изменялась местами. Вот когда уволился - некому стало дорабатывать под нужды(ну не было специалистов подобного класса) и пришлось все же напрячься 1С-никам. А если бы не ушел - так и вели бы учет документов в Excel. Так что временность - это не удел макросов. Это все зависит от тех, кто их пишет и кто использует. И это может относиться к любой программе на любом языке. Если будет потребность в изменении, но некому будет - программу забросят и будут искать замену. Вот и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Мотя пишет: Не могу понять Вашу дополнительную реплику
А реплика моя вызвана тем, что уже в который раз, Вы пишете про эту пресловутую ножку. И не устаёте повторять. Аналогичная ситуация повторяется, когда кому-нибудь требуется СВОЯ форма для заполнения БД - Вы тут же достаёте старый патефон и заводите свою любимую пластинку про изобретение велосипеда, предлагая известную надстройку. Но человек хочет СВОЮ форму. Понимаете,- СВОЮ. Вспомните анекдот про продавца, который Вам рассказал Виктор.
Уважаемый The_Prist! Думаю, если бы я была аккуратнее в выражении своих мыслей и написала бы так: "Говоря о ПО в сравнении с макросом, я имела в виду используемое прикладное ПО, которое находится всегда в состоянии изменений по прикладным вопросам, заменяя потребность в использовании ранее созданных пользовательских макросов новыми штатными режимами ПО", то не вызвала бы столько негатива в свой адрес.
Цитата
The_Prist пишет: Так что временность - это не удел макросов.
Я полагаю, что время жизни пользовательского макроса определяется ответственностью разработчика за качество прикладной части ПО. Несмотря на то, что в профессиональной жизни я не работаю в EXCEL, считаю, что EXCEL - инструмент, без которого сегодня не может обойтись ни один экономист (финансист,.бухгалтер).
Мотя пишет: Я полагаю, что время жизни пользовательского макроса определяется ответственностью разработчика за качество прикладной части ПО .
Счел это камнем в свой огород. Притом камень не заслуженный. Вы часто делаете программы другим людям? Я часто. Так вот: если программа более-менее серьезная(особенно внутри компаний), то всегда надо что-то дорабатывать, т.к. меняются какие-то регламенты, пожелания по работе, руководство, в конце концов, которое имеет свой взгляд на работу данной программы. Вследствие чего просят доработать/изменить. И разработчик не может этого предусмотреть и сделать программу на века и для всех случаев жизни. И его ответственность за качество продукта здесь не при чем. Поверьте, я делаю достаточно качественные программы, чтобы не возникало претензий к их качеству. Так что советую Вам впредь не один раз подумать, прежде чем высказывать в подобном ключе.
Есть подозрение, что Вы пытаетесь судить то, о чем имеете поверхностное понятие и с чем сталкивались только по наслышке или по ту сторону баррикад(т.е. не как разработчик ПО).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist пишет: Поверьте, я делаю достаточно качественные программы, чтобы не возникало претензий к их качеству.
Разве в этом кто-то сомневается? Лично я на Вашем сайте (excel-vba.ru) нашла для себя много полезных и качественно работающих макросов, которые использую в своих опусах. Это очень удобно и надежно.
Господа, лично я "одну ножу" понял именно как то, что макросы до ПО не дотягивают как ни крути(т.к. это же лишь макропрограммы внутри другого приложения). И эта ножка меня не парит - если мне надо, я пишу программу совершенно в другой среде. И высказывание вроде как было в том контексте, что это хоть и "недопрограммы", но для их работы так же требуется соблюдение четких правил. Просто в других высказываниях сплошные нестыковки - и именно эти другие сообщения и вызывали мой "интерес" к обсуждению. А вот Ваш негатив к ножке мне не очень понятен :-) Ну хочет человек так называть - это его дело. Поэтому как раз здесь не вижу повода для разногласий.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Штирлиц посмотрел в окно. - Какие ножки у этой крошки! - сказал он стихами. - Смотри, Борман. Борман достал из стола цейсовский бинокль и подошел к Штирлицу. Минуту они молчали. За это время Штирлиц успел обдумать словаБормана, а Борман догадался, что Штирлиц его отвлек.
макросы до ПО не дотягивают как ни крути(т.к. это же лишь макропрограммы внутри другого приложения
1С как назовем? Инвалидом с палочкой или прикладным ПО? Похоже, в ключе данной темы - все же инвалид: а) без приложения никакая конфигурация работать не будет; б) код пишется своим встроенным языком (можно сказать - несколькими: там есть еще язык запросов).
Вить, не путай! 1С - это как раз оболочка, внутри которой можно использовать собственные конфигурации. Ты в таком случае не с макросами 1С сравнивай, а с Офисом в целом - ведь внутри него мы можем макросы писать и использовать, но не извне. А 1С - самостоятельная программа, внутри которой так же встроен редактор конфигураций. Они(конфигурации) могут быть написаны и вне 1С, но вне неё работать не будут, т.к. 1С является так же и компилятором для своих конфигураций. Т.е. сами конфигурации - да, недопрограммы, потому как самостоятельно(без 1С) они работать не будут.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Я, наверное, о том же, но с другого боку. Второй абзац по-моему: Офис - самостоятельная программа, внутри которой так же встроен редактор VBA. Они(макросы) могут быть написаны и вне Офиса, но вне неё работать не будут, т.к. Офис является так же и компилятором для своих макросов. Т.е. сами макросы - да, недопрограммы, потому как самостоятельно(без Офиса) они работать не будут.
Фабрика по изготовлению спецодежды. Материальное и финансовое планирование производства на год с разбивкой по месяцам и с учетом наличия материалов и денег на данный момент. Ввели график выпуска и получили полную картину наличия и потребностей, вплоть до пуговицы и копейки (на любую дату выпуска). Около двух лет программа работает. Нареканий нет. Это "одноножка"? Не будет установлен Офис - не будет работать.
1С. Даже при наличии платформы проблемы будут, если создать конфигурацию "тяп-ляп". Это можно отнести к любой программе, написанной на любом языке. Да, возможности VBA меньше, чем, например, С++, но каждому соловью своя роща слаще
Вить, тут скорее вопрос интерпретации этой "одноножки" и именно об этом я писал. Я написал как воспринял это высказывание я(не факт, что автор имел ввиду в точности то же самое):
Цитата
это хоть и "недопрограммы", но для их работы так же требуется соблюдение четких правил
Т.е. я воспринял это так: макросы хоть и не полноценные программы, но также подчиняются конкретным правилам, как любая программа. ikki изначально воспринял это не как я, а в другом контексте - тут и понеслось.
Ты и Юра тоже сразу "одну ножку" подхватили("поведясь" на то, как её воспринял ikki или имя такое же видение), восприняли в штыки(видимо, к этому добавились высказывания про "защиту от дурака", "время жизни пользовательского макроса определяется ответственностью разработчика за качество прикладной части ПО" и пр.). Все это выстроилось в одну единую мысль, которая была приписана Моте - "макросы это что-то несерьезное и не могут быть постоянной частью бизнесс-процессов компании". Или вроде того. И все это она называет "одной ножкой". Хотя эту мысль она последующими высказываниями подкрепляла как могла . Пусть и не специально и имелось ввиду(возможно?) нечто другое.
Я же просто пояснил свою позицию именно относительно "одной ножки" - как я воспринял именно это высказывание, не "совокупляя" его с другими высказываниями Моти. Вот и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Внесу и свои три копейки про одну ножку. У нас на работе есть чудесная программа SAP. Так вот в нашей конторе есть такой чудесный отчёт, на котором повязаны 8 отделов. Захотело руководство, чтобы данные для этого отчёта заносились в SAP, но что-то руководству не понравилось (может, денег разработчики заломили), и они отказались - и попросили написать меня. Я написал эту "одну ножку" в связке Excel + Access. И вот эта "ножка" уже работает два года. Все 8 отделов, каждый день. А то, что макрос - неполноценная программа.... Считайте, что макрос - это эдакий плагин. Ведь есть и к Excel'ю плагины - значит, и Excel неполноценный. Отчасти это так, потому как, в принципе, любая программа является неполноценной, так как каждому пользователю хотелось бы видеть в ней то-то и то-то. Поэтому и существуют макросы, чтобы пользователи добавляли свои хотелки - и это здорово. С макросами Excel становится удобным и полноценным, так как решает нужные задачи конкретному пользователю.
я не первый раз слышу это выражение от уважаемой Моти. и, как выражение, оно меня не напрягает. "на одной ножке" или "недопрограммы" или "убогие создания с трагической судьбой" (короче говоря - "макросы") - как ни назови, некоторое пренебрежение у автора высказывания есть. как я понял - вызванное тем, что макросы в Excel очень часто пишутся в достаточно жёсткой привязке к структуре данных, их расположению и даже содержанию. а вот какие-то мифические "двуногие" программы - видимо, нет. видимо, существуют "серьёзные" продукты, которым глубоко пофиг на то, с какими данными они работают, на "несоблюдение условий" и ограничений и т.д.
вот мне и захотелось расширить свой кругозор - узнать, что это за программы такие.
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Вставлю свои 5 коп. Для меня ПО - это даже вот такая строчка кода - msgbox 'Hello World'. И даже не имеет значения то, написана ли она или все еще в голове. В понятие ПО входит как проектирование так и документация. Так что любой макрос в VBA = ПО.
И я свои пять копеек вставлю. Анализируя приведенные коды пользователя Moтя, на самом деле понимаешь почему человек утверждает что макросы "убогие", "на одной ножке" и т.д. В основной массе они записаны макрорекордером с небольшими коррективами. Оно и понятно почему у нее сложилось такое впечатление от VBA . Хотя это тоже ПО. Я думаю она научиться со временем писать программы не "на одной ножке" и придет понимание на сколько макросы это продвинутое и профессианальное ПО. --------------- Ни чего личного лишь анализ и наблюдения.
B.Key пишет: Анализируя приведенные коды пользователя Moтя
Уважаемый B.Key! Я - не программист. И не собираюсь им становиться. В профессиональной жизни мне совсем не приходится работать в EXCEL. Однако, я АБСОЛЮТНО уверена, что у EXCEL (и у иных программ для работы с электронными таблицами) жизнь - вечна, ибо ПРИКЛАДНОГО ПО "под ключ" не может быть. _____________________________________________________________________________________________________________ Наблюдая за работой своих коллег, высокопрофессиональных экономистов в прикладном ПО и EXCEL, пришла к выводу, что макросы должны им помогать избавляться от рутины в работе с ЭКСПОРТОМ из ПО в EXCEL. Рутина "крадет" их время, предназначенное для выполнения их профессиональной работы.
Цитата
B.Key пишет: Я думаю она научится со временем писать программы не "на одной ножке" и придет понимание на сколько макросы это продвинутое и профессиональное ПО.
Многие мои коллеги-экономисты сами "кропают" макросы в ситуации, когда в текущей версии Генератора Отчетов в ПО отсутствует нужный им шаблон. И не суть важно, как макросы написаны - высокопрофессиональным программистским "слогом" или с помощью параметризованных команд макрорекордера. Авторам этих макросов некогда "грузить голову" премудростями профессионального программирования. Жизнь у таких макросов заканчивается при появлении нужного шаблона для этого отчета в новой версии Генератора Отчетов в ПО. Главные требования к макросам в подобной ситуации, на мой взгляд: 1. соблюдение обязательных требований при создании макросов 2. время исполнения (от макроса, который работает более 1 минуты, следует непременно избавиться), 3. контроль исходной информации на предмет - "кривая / не кривая", 4. доступность кода для внезапного изменения другим пользователем в ситуации, например, если разработчика макроса "трамвай переехал".