Все выпуски  

Microsoft office. Основы программирования.





Microsoft Office - совет дня.

В чрезмерных спорах утрачивается истина. (Публий Сир)

Природа породила и создала нас для каких-то более значительных дел. (Цицерон)

Мудрость приходит c возрастом, но иногда возраст приходит один.

"Люди одиноки, потомy что вместо мостов они стpоят стены" (Станислав Ежи Лец)
"Одиночество как состояние, не поддается лечению" (Фаина Раневская)




Пишите автору

Реклама и консультации

Рекомендуем подписаться! Наши самые интересные рассылки.
Рассылки Subscribe.Ru
Планирование карьеры. Как правильно составить резюме?
Работа в Москве. Рынок вакансий. Как найти работу в Москве?
Маркетинговая стратегия. Управление маркетингом
Аренда квартир в Москве. Снять (сдать) квартиру. Наем жилья
Управление рисками: Новости, технологии, моделирование
Мировой финансовый кризис. Бизнес в условиях кризиса
Современный мир. Глобальные проблемы. Эволюция человека
УмНыЕ мЫсЛи
Метафоры в жизни. Метафора как подражание и как троп
Читать книги! Рецензия на книгу. Что почитать?
Лучшие сайты. Обмен ссылками
Обслуживание компьютеров
Снижение расхода топлива (бензина, дизтоплива, керосина). Увеличение мощности двигателя.
Microsoft Office - совет дня
___________________________

Рассылка новостей
Выпуск от 2009-06-01 16:43

Здравствуйте, дорогие читатели!  Присылайте свои вопросы на msoffi@mail.ru .

Я недавно получил письмо с просьбой:

“Меня вдруг посетило желание создать собственный маленький конвертер валют в VBA. Чтобы он выскакивал поверх всех окон при нажатии на кнопочку, которую я сама задам. Помнится, когда-то я таким образом делала калькулятор, а теперь все позабыла. Конвертер я бы хотела иметь в Excel. Хотелось, чтобы все было «как у взрослых» - собственная программка J. Да и пригодится может впоследствии для другого чего-нибудь. Насколько возможно научиться этому в рамках Вашей рассылки?

Отвечать на подобные письма можно несколькими способами:

  • -          1. Привести готовый код для выполнения нужных тому или иному читателю задач;
  • -          2. Можно подробно объяснить что нужно сделать на «более общем» примере (чтобы в одном ответе объединить решение нескольких задач)
  • -          3. Можно начать краткое изучение основ написания макросов в программах пакета MS Office и параллельно решать задачи, актуальные для читателей рассылки.
  • -     4. Или можно поступить иначе (присылайте свои варианты, если они у Вас появятся)

 

Поступить согласно 1му варианту для решения задачи в поставленном виде довольно проблематично, т.к. нужно многое описывать, а если это делать без пояснений, то описание будет скучным и сухим (и совсем не запоминающимся, т.е. одноразовым и бесполезным). А если идти «по варианту номер 2», то у нас может получиться вариант 3, только не систематизированный и, довольно беспорядочный

Поэтому я предлагаю начать с 3го варианта, т.е. изучение программирования в офисных программах на примерах решения ваших задач. Т.е. в выпусках будет небольшая теоретическая часть и  практическая часть – разбор ваших задач и ответы на вопросы.

 

ТЕОРИЯ.

Итак, начнем осваивать VBA (аббревиатура от Visual Basic for Applications, что означает Visual Basic для приложений). Вы узнаете об основных принципах программирования в VBA и получите необходимые навыки для создания полезных программ. А самое главное, вы сможете сделать это без лишних усилий, читая небольшие выпуски нашей рассылки и решая задачи, с которыми многим из Вас приходится постоянно сталкиваться.

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

С макросами удобно работать, создавая и изменяя их в диалоговом окне Сервис – Макрос – Макросы, где мы вводим имя создаваемого макроса, или выбираем из списка имеющийся макрос, который мы хотим изменить (или выполнить).

Очень кратко на простом примере рассмотрим структуру программы VBA:

Public Sub CopyBlock()                       ' задаем имя нашей программе  - CopyBlock

Selection.Range.Copy                         ' копирует выделенное в буфер обмена

Documents.Add                                   ' создает новый документ

Selection.Range.Paste                        ' вставляет содержимое буфера в новый документ

Dialogs(wdDialogFileSaveAs).Show   ' вызывает диалог сохранения создаваемого файла

ActiveDocument.Close                        ' закрываем активный документ

End Sub                                                ‘ заканчиваем программу

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

В первой строке слово Public показывает, что наша программа (вернее подпрограмма или просто Sub) с именем CopyBlock будет доступна из всех других программ и модулей. Если мы не планируем создавать программы из нескольких частей (подпрограмм), то слово public можно не использовать (просто забыть про него, или копировать предлагаемые в наших примерах макросы «как есть» - есть это слово, копировать с ним, нет – без него.)

Последняя строчка End Sub обозначает, что в данном месте наша программа (программа CopyBlock) заканчивается. Каждой строке содержащей  Sub Имя_программы() должна соответствовать строка с End Sub. Между двумя этими строчками будет располагаться собственно программа, т.е. несколько команд, каждая из которых будет выполнять определенное действие.

При создании макроса мы получаем шаблон вида:

Sub ИмяПрограммы()

 

End Sub

Если мы вставляем свой пример -  макрос, уже содержащий строки с Sub и End Sub, то предлагаемые нам строки с  Sub ИмяПрограммы()   и  End Sub  мы просто удаляем. При этом наша программа получит имя не ИмяПрограммы, которое мы ввели при создании макроса, а то, которое будет в копируемом примере, н-р  Sub Конвертер(), и в списке имеющихся у нас макросов появится макрос с именем Конвертер.  Скобки после имени Конвертер() предназначены для помещения в них списка аргументов (я объясню их применение в одном из следующих выпусков).

Внимание! При удалении «лишних»  строк  Sub ИмяПрограммы()  и End Sub   нужно быть внимательным и если у Вас имеются другие нужные макросы не удалить и их. Так что всегда смотрите на имя макроса, который вы удаляете и не удаляйте программы, в ненужности которых вы не уверены.

После символа '    задаются комментарии, т.е. строка

 ' задаем имя нашей программе  - CopyBlock

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

 

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

В Word 2003 это настраивается следующим образом:  Сервис – Настройка – Команды – Клавиатура - в списке «Категории» выбираем Макросы, затем выбираем нужный макрос, переходим в ячейку  «новое сочетание клавиш»,  нажимаем желаемую нам комбинацию, н-р Ctrl и Z и затем кнопку «Назначить».

 

В Word 2007 для этого нужно проделать следующие действия:

Вызываем окно «Настройка панели быстрого доступа» (щелчком правой клавиши мыши на панели с меню),  далее  «Сочетание клавиш» нажимаем «настройка» – в списке «Категории» выбираем Макросы, затем выбираем нужный макрос, переходим в ячейку  «новое сочетание клавиш»,  нажимаем желаемую нам комбинацию, н-р  Ctrl и Z и затем кнопку «Назначить».

 

ПРАКТИКА

1)      В редакторе Word создадим макрос:

Public Sub CopyBlock()            ' задаем имя нашей программе  - CopyBlock

Selection.Range.Copy              ' копирует выделенное в буфер обмена

Documents.Add                     ' создает новый документ

Selection.Range.Paste             ' вставляет содержимое буфера в новый документ

Dialogs(wdDialogFileSaveAs).Show  ' вызывает диалог сохранения создаваемого файла

ActiveDocument.Close              ' закрываем активный документ

End Sub                                         ‘ заканчиваем программу

2)      Назначим этому макросу сочетание клавиш для вызова (н-р Ctrl+Z)

 

 


Хотели бы Вы дальше изучать основы программирования в MS Office?
(голосование возможно только из письма рассылки)
  • - Да
  • - Да, только в краткой форме на реальных задачах
  • - Нет, достаточно приводить готовый программный код
  • - Нет, меня совсем не интересуют вопросы программирования и автоматизации часто повторяющихся действий.


  •  

    До встречи в следующих выпусках!

    Игорь

    msoffi@mail.ru

    Рассылки Subscribe.Ru
    Планирование карьеры. Как правильно составить резюме?
    Работа в Москве. Рынок вакансий. Как найти работу в Москве?
    Маркетинговая стратегия. Управление маркетингом
    Аренда квартир в Москве. Снять (сдать) квартиру. Наем жилья
    Управление рисками: Новости, технологии, моделирование
    Мировой финансовый кризис. Бизнес в условиях кризиса
    Современный мир. Глобальные проблемы. Эволюция человека
    УмНыЕ мЫсЛи
    Метафоры в жизни. Метафора как подражание и как троп
    Читать книги! Рецензия на книгу. Что почитать?
    Лучшие сайты. Обмен ссылками
    Обслуживание компьютеров
    Рекомендуем подписаться! Наши самые интересные рассылки.

    В избранное