• Мнения
  • |
  • Обсуждения
Работа, карьера, бизнес
Дмитрий Шомин Мастер

Как избавиться от рутины при работе с компьютером?

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

Для чего это нужно?

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

В каких приложениях применяются встроенные системы программирования?

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

Что представляют собой эти системы?

Сегодня большинство таких систем включает в себя объекты, с которыми работает само приложение. Например, лист таблиц, или ячейка. В нотном редакторе это может быть нота или целый нотный лист. Понятно, что системы программирования приближены к логике самого приложения, с которым вы привыкли работать. Так же в системе программирования можно найти команды, управляющие процессом исполнения программы. Это, например, команды выполнения повторяющихся действий или команды проверки условий.

Как начать?

Привычные для нас офисные системы предлагают автоматический способ написания программ под названием «макрос». При выполнении действий все они автоматически записываются в текст программы в виде команд. Можно открыть макрос и посмотреть, что там получилось. Можно внести необходимые изменения, чтобы конкретные действия распространить и на общие случаи. Например, указать не конкретную колонку для сортировки, а предварительно выбирать ее в ходе выполнения программы. Для этого существуют специальные команды ввода значений.

Можно ограничиться такими макросами. Но если их не хватает, то стоит открыть помощь и почитать, что там написано. Самое первое, что надо найти — это как оформляется текст программы. Обычно это ясно из кратких примеров. Однако стоит поискать описание элемента, который может называться по-разному, например, программой, подпрограммой, функцией или процедурой. Следует почитать раздел, именуемый концепцией, частыми вопросами, основами или еще как-то обобщающе. Там должна быть информация, касающаяся правил оформления программы и применяемых объектов. Например, как отделять друг от друга команды, какие части есть в командах, как они согласуются. В современных языках правила довольно однотипны, различаются только названия объектов.

Все действия, совершаемые c объектами, обычно выполняются так называемыми методами. Объектам также присваиваются определенные свойства. Например, колонке на листе может присваиваться определенная ширина или размер шрифта. Как ни странно, но колонка может оказаться не объектом, а свойством более общего объекта «рабочий лист». Поэтому надо в справочной системе просматривать все близкие по смыслу объекты, их свойства и методы. Чаще всего действия над объектами в программе выполняются с помощью присвоения значения каким-либо переменным. Это чисто формальный подход, к которому надо привыкнуть. Такое присвоение выполняется либо специальной командой, либо через применение знака «равно».

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

Как получить требуемый результат?

Когда изучены технические основы, можно приступать к реализации своих задумок. Поскольку все, что вы делаете, связано с объектами прикладной системы (например, офисной), то необходимо просмотреть весь список объектов и найти те, с которыми вы собираетесь работать. Например, объект под названием «рабочий лист». После этого посмотреть, какие у этих объектов есть свойства и что с этими объектами можно делать. Например, надо добавить колонку определенной ширины. Для этого есть метод «добавление» и свойство «ширина колонки». Главное — четко понимать, что нужно сделать и с каким объектом. При поиске в справочной системе нужных объектов может понадобиться просмотреть все родственные объекты, их свойства и методы. Так как колонка в таблице может оказаться не объектом, а свойством объекта «рабочий лист».

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

Далее к каждому шагу надо подыскать соответствующий объект и остальные «детали». Программу желательно писать и отлаживать по шагам, а не всю сразу. Иначе можно запутаться.

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

Внешний вид

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

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

Заключение

В современных системах автоматизации прикладных программ существуют разные элементы, упрощающие рутинные операции. Надо смело читать справочные подсистемы и искать в них необходимую информацию. Можно ограничиться только отчетами для реализации вывода одних и тех же данных в различной форме. Можно написать простейшую программу из нескольких команд. А можно создать целый комплекс, облегчающий выполнение очень сложных операций.

Удачи вам в избавлении от рутины!

Статья опубликована в выпуске 3.08.2007

Комментарии (61):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Разумно, что не говорится о каких-то конкретных программах. Объяснены основные направления работы.
    Главное - пользователь должен быть готов к тому, чтобы начать думать о необходимости какой-то автоматизации .

    Оценка статьи: 5

  • Всему этому можно учиться бесконечно.

  • Я тоже не особо все понял...

    • Ну да, по-моему, это материал для очень продвинутых пользователей. Но нужная информация.

      • Или вот еще! Позавчера друг обратился: "Можно ли просматривать все Word-документы, которые открывались-закрывались на моем компьютере?"
        Пару строк вставляем в главный модуль шаблона Normal.dot и в период с 8 до 17 все Word-файлы, которые открывались-закрывались, будут сохраняться в папке по умолчанию.

      • Хотел на эту тему написать. Увидел - написали раньше.
        Сам уже 5 лет занимаюсь автоматизацией офисных приложений с помощью макросов. Иногда приходится записывать в автоматическом режиме, но чаще всего - вручную. Вот например такая штука была. Пришла знакомая с Пенсионного фонда. Принесла 3 Excel файла, выгруженных из какой-то DOS-овской реляционной базы данных. В основном файле были ФИО пенсионеров, а в остальных - ихние адреса. Причем адреса в основном файле были пробиты как индексы двух других. Она пыталась вручную индексы менять на реальные адреса, но поняла, что это ей работы месяца на 3. Сели, поколдовали, написали за 20 минут процедурку на VBA. Вуаля! Запустили - комп сам всё сделал...

  • Пассивный коммунист сменил позицию и овладел компьютером

    афоризм от историка архитектуры Булкина

    Оценка статьи: 5

  • Хорошая статья

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

    По своей практической значимости
    - статья новичкам ЕЩЕ,
    - бывалым программистам УЖЕ
    малопригодна.
    Статья о намерениях избавления от рутины

    Оценка статьи: 5

  • Ну и дискуссия! Я, как "ничья бабушка" в "Золотом теленке" не верю ни в электричество, ни в макросы. Ну их, из них действительно всякая зараза лезет.
    Кстати и о хэлпе. Лично я, безуспешно пытаясь найти в хэлпе нужный совет, все-таки лезу в дорогущие книги, и там ответ нахожу.

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

    Оценка статьи: 4

    • Согласен, мысль про серию статей интересная. ВОт только насколько я видел людей, которые пытались писать программы, не все так просто. Если человек сам не может разобраться на имеющихся примерах, то в рамках страничных статей разобраться будет не легче. Это точно. А в хелпах главное - примеры. Их чаще всего можно прям брать и пускать. А потом дополнять и развивать. А серия статей может лично у меня получиться очень короткой. Я сам писал только в трех подобных системах. Остальная моя работа - на отвязанных системах.

      • Прощу прощения. Дмитрий, вы в автомобильчиках, может, тоже разбираетесь? МОжет, как в грузах? У меня в блоге - ралли. Там всякие классические машинки, некоторые узнать удается, а иные - только по цвету различаем-с...

        Оценка статьи: 5

        • В автомобильчиках тоже разбираюсь. Было у меня в детстве несколько. Это наезд? А цвет у них у всех - грязная дорога. В крайнем случае мокрый асфальт.
          А вобче-то я скорее по корабликам, а не по автомобильчикам. Только видел я эти кораблики уж слишком давно. Боюсь плавкран с землечерпалкой перепутаю уже.

  • Я тут подумал, может название статьи как-то поменять? А то кто-то подумает что вообще программу написать. Есть какие идеи у кого?

  • Поскольку статья пока в работе:

    1. Статья преследует цели просто ввести в курс дела? То есть объяснить что есть что при работе с офисными приложениями?

    2. Статья не преследует более детальный обзор что надо для написания своей программы (не офисного приложения)?
    То есть в профессиональных средствах программинга, не беру в расчет среди Билдер и Делфи и Ко. Есть более интересные среды, например реализующие функционал UML-языка.


    ЗЫ: специально защел посмотреть в профайл, дабы понять на какую беседу настраиваться. понял: на профессиональную)

    • 1. Не только офисными, а вообще с приложениями, в которых есть прикладные системы. Поэтому примеров конкретных и нет. А работы с офисными прилжениями я вообще не касаюсь, вообще-то. Это совершенно отдельная тема.

      2. Статья преследует целью сказать, что такие средства есть и стоит на них посмотреть в хелпе. Только и всего. Кто умеет читать помощь вероятнее всего сможет и написать простую программу. А отвязанные "профессиональные" среды я принципиально не рассматриваю, так как они "профессиональные". И как их прилепить к Ворду или еще куда - совсем отдельный вопрос. Хотя к системе помощи в офисе у меня куча претензий. Так что, с офиса ничинать надо макросами, как мне кажется. А потом их добивать редактированием.

      • 1. Прикладные системы есть много где. Вон 1С, чем не прикладная система? Однако кодингу в ней учат и учат.

        2. Я бы сказал не то что в хелпе, а в специальных книгах. Хелп зачастую настолько уродлив и косноязычен что волос на голове не хватит все себе вырвать.

        3. Насчет макросов. Ими же и закончить. ибо любой уважающий себя человек, связанный с компами и IT отрубит их. Вирусов задействующих макросы тьма и маленькая тележка.

        А вообще главное подать направление. Тот кому надо сам найдет, кому лень так и проживет

        • 1,2. Скажу честно книжки читал только в детстве, в школе. По программированию. В остальном хватало хелпов, даже корявых. Приходится задумываться иногда действовать методом проб и ошибок. Но это гораздо быстрее, чем искать хорошую книгу, потом ее изучать от начала до конца. Даже в кривом хелпе есть поиск, что сильно облегчает ситуацию в плане скорости освоения.
          К любой серьезной системе, пусть даже 1С есть специальная документация, не просто помощь. Различные руководства по тому или иному разделу. Так что, в принципе, мою статью можно и к 1С отнести, вот только там прикладываться некуда, кроме как к бух и прочему учету.
          3. У нас куча разных вспомогатеных прилад как раз в макросах. А Оракл не самая последняя штука из программных сред.

  • Редактировать...
    Самое упоительное - сокращать.
    Вот, например. Вместо:
    "Когда вы собираетесь программировать, надо четко понимать нужно ли это. Например, если вы каждый день открываете новый файл с таблицами, перекачиваете листы из одной книги в другую и сортируете по определенным колонкам, то стоит задуматься над созданием программы. Другими словами такая программа поможет справиться с рутиной. А если вы работаете с десятками однотипных файлов или выполняете другие повторяющиеся действия, то необходимость становиться просто очевидной."
    можно:
    "Такая программа поможет справиться с рутиной. Если вы каждый день открываете новый файл с таблицами, перекачиваете листы из одной книги в другую и сортируете по определенным колонкам, то стоит задуматься над созданием программы. Если вы работаете с десятками однотипных файлов или выполняете другие повторяющиеся действия, то необходимость автоматизации становится просто очевидной."
    Или - что-то еще вместо автоматизации.
    Ну и прочие подобные случаи. Вводные фразы и обороты спокойно сокращаются, без проблем.
    Насчет Как начать - лучше бы рассмотреть конкретный пример с вордом: в меню сервис.... Или адресно отослать к справке.
    Я, например, все это делаю наспех, кое-как, без всяких предварит. планов на бумажке. Потом переделываю-переделываю.
    Страдательный залог можно устранять, глаголы возвратные. Не профессионалами применяется, а профессионалы применяют - так энергичнее и короче.
    Или вот еще:
    "Для повторяющихся действий применяются так называемые циклы. Они бывают разные в зависимости от необходимости. Могут быть циклы, построенные на счетчиках, а может быть указана проверка условия на каждом шаге повторения. Например, если вам надо скопировать листы таблиц из нескольких файлов в один, то это можно сделать в цикле. На каждом шаге будет выполняться открытие файла, выделение и копирование таблицы, и размещение ее в новой книге. Все команды управляющие поведением программы в целом обычно описываются в одном разделе справочной системы."
    Можно так:
    "Для повторяющихся действий применяют так называемые циклы. Циклы могут быть построены на счетчика; может быть указана проверка условия на каждом шаге повторения. Например, если вам надо скопировать листы таблиц из нескольких файлов в один, то это можно сделать в цикле. На каждом шаге будут выполняться открытие файла, выделение и копирование таблицы, размещение ее в новой книге. Все команды, управляющие поведением программы в целом, обычно описываются в одном разделе справочной системы."
    В этом абзаце, кроме того, я знаки препинания расставила.

    Оценка статьи: 5

    • На счет примера. Все неконкретные примеры призваны просто иллюстрировать рассказ. Я не пишу инструкцию. Конкретный пример с вордом будет не интересен любителю черчения или прочей графики. Да к тому же все версии разные, вплоть до того , что меню иногда меняется. Тот кто пользуется системами помощи знает как найти там макрос. Надо просто поиск задать слова и вывалится все, что есть. А кто помощь не читает, тот и спрограммировать не сможет. Факт.

  • Смутно понимаю, что вы, Дмитрий, пишете о том, что мне приходилось и в word-е, и в photoshop-е, и в access-е делать, в Page Maker пыталась, но ОНО работать отказывалось...
    Но уж больно все так сурово написано... Да и стоит ли макросы-экшены-скрипты называть комп. программами? И тем давать людям ложную надежду?

    Оценка статьи: 5

    • Что значит сурово не понял.
      А программа - последовательность машинных команд, предназначенная для достижения конкретного результата. Или - согласно ГОСТ 19781-90 - данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма.
      http://slovari.yandex.ru/dict/gl_natural/article/136/136_207.HTM?text=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0

      Или это что-то другое? А надежда не может быть ложной. Просто она есть или ее нет. А макросы в ворде и екселе и есть программы. Достаточно в них заглянуть. Написаны на языке вижлбейсик.

      Кстати, статья значит неплохо написана. Ничего кроме надежды я не хотел дать.

      • Сурово - это когда свою ученость хочут показать и говорят все о непонятном.
        Ну да, на языке! Там надо кнопочку нажать с кружочком - и все необходимые операции делать, потом на кнопочку с двумя полосочками нажать - значит, запись окончена. И никаких тебе вижлбейсик, мы таких непристойных слов и не слыхивали!
        В общем, оказалась, что я уже лет десять занимаюсь этим первичным программированием. При этом - говорю исключительно прозой.

        Оценка статьи: 5

        • Истину глаголете... ВОт именно оно и есть. Кнопочка с кружочком. В некоторых системах такого чуда, к сожалению, нет.

          Я уж упрощал, упрощал, правил, правил. Укажите, плз, где еще подправить. А слово программа убрать ну никак не могу. Про то ж весь текст.

          • Да пусть будет программа, пусть это переполнит чайников сознанием собственной значимости!
            Это ж не макрос по хелпу написал - программу составил!

            Оценка статьи: 5

            • Кто такие чайники? Почему не знаю?
              По поводу пиетета. Тут просто путаница возникает какая-то. Причем историческая. Вспоминаются большие ученые торящие пути к другим планетам с помощью первых компав-монстров. У нас и сегодня выпускают таких гениев. Самый большой конкурс на них в универе. Изучают они различные вычислительные методы в математике с помощью кибернетики. В том числе существует и такая дисциплина как математическое программирование. К компьютерному никакого отношения не имеющая. В каком-то смысле, конечно, имеющая, так как использует компы в области прикладываемой к математике. А вот программирование прикладываемое к екселю никаких других знаний кроме екселя не предполагает. Ну, еще хелп читать надо уметь, конечно. Аналогично и в прочих прикладных системах. Математика просто одна из областей, куда можно приложиться. Не более того.