Программирование - это просто
Advertisement
Главная arrow Компьютер для блондинок arrow Программирование для блондинок arrow Компьютер для блондинок. Мы написали полезный макрос (Selection, MoveRight, MoveLeft, TypeText).
16.08.2026 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Компьютер для блондинок. Мы написали полезный макрос (Selection, MoveRight, MoveLeft, TypeText). Печать E-mail
Автор megabax   
26.11.2009 г.
Привет

Мы написали полезный макрос (Selection, MoveRight, MoveLeft, TypeText).

- Что интересное ты покажешь нам нам это раз? - спросила Лена.

- Да, надеюсь, это будет не "Hello world!", как в прошлый раз, - добавила я.

- Сегодня мы напишем кое что посложнее, - заверил нас Коля и открыл Word.

- Что, опять макросы будем писать? - задала вопрос Лена.

- Да, потому что макросы это самое легкое. Как записать его вы помнить, да?

- Да, нужно войти в меню "Сервис" -> "Макрос" -> "Начать запись", - сказала я.

- Да, верно, - с этими словами Коля произвел эти действия и набрал:

Это наша вторая программа. Она будет посложней.

Затем он выделили слово "программа" жирным и остановил запись, после чего показал нам текст макроса:

Sub НашаВтораяПрограмма()
'
' НашаВтораяПрограмма Макрос
' Макрос записан 27.09.2009 admin
'

      Application.Keyboard (1049)
      Selection.TypeText Text:= "Это наша вторая программа. Она будет посложней. "
      Selection.MoveLeft Unit:=wdCharacter, Count:=32
      Selection.MoveRight Unit:=wdCharacter, Count:=9, Extend:=wdExtend
      Selection.Font.Bold = wdToggle
End Sub

- Это программа, - сказал Коля, - которая выводит текст "Это наша вторая программа. Она будет посложней. " и делает слово "программа" жирным шрифтом. Посмотрите, как она устроена. Видите строку

Selection.TypeText Text:= "Это наша вторая программа. Она будет посложней. "

Эта строка как раз и выводит на экран надпись. А следующая

Selection.MoveLeft Unit:=wdCharacter, Count:=32

сдвигает курсор на 32 позиции влево.

- А ниже нее на 9 позиций вправо? - Предположила я.

- Совершенно верно.

- А почему так, а не просто на 23 позиции влево? - спросила Лена.

- А ты посмотри на эту строчку внимательнее. видишь отличия?

- Да, там есть Extend:=wdExtend.

- Вот как раз этот модификатор "Extend:=wdExtend" обозначат, что курсор нужно двигать с выделением текста. Как будьто мы его мышкой выделили. Заметили, что вправо я двигал курсор уже держа нажатой клавишу Shift?

- Да, заметили, - ответили мы враз.

- А "Selection.Font.Bold = wdToggle" - это, наверное, сделать текст жирным, - предположила Лена.

- Совершенно верно, - ответил Коля

- Ладно, хорошо, - говорю я, - а какая от всего этого практическая польза?

- Ну, можно, например, написать программку, которая выделяет жирным десять символов слева от курсора, - произнес программист.

- А зачем?

- Ну, как зачем? Что бы научиться программировать...

- Стоп стоп! - вмешалась Лена, - я так понимаю, что Юлька хочет написать программу, которая будет делать что то нужное. Юль, я тебя правильно поняла?

- Да, - ответила я.

- Тогда давайте создадим макрос, который выделяет не 10 букв слева от курсора, а целое слово. Коль, это можно устроить?

Программист на несколько секунд задумался, словно зависший компьютер, затем уверенно и радостно произнес:

- Легко!

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

Sub Макрос6()
'
' Макрос6 Макрос
' Макрос записан 27.09.2009 admin
'

      Selection.MoveLeft Unit:=wdWord, Count:=1
      Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
      Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
      Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
      Selection.Font.Bold = wdToggle
End Sub
 

 - Ты же сказал, что надо нормально называть программы, а не "Макрос1, Макрос 2 ...", - сказала Юлька, увидев в тексте слово "Макрос6".

- Да, абсолютно верно.

Он исправил название на "ВыделениеСлова", затем переключился на Word, зашел в меню "Сервис" -> "Макрос" -> "Макросы...".  Открылось вот такое окно:

Selection, MoveRight, MoveLeft, TypeText

- Вот, - сказал Коля, - название изменилось. Если выделить макрос и нажать выполнить, то программа отработает, будет выделено слово слева от курсора.

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

Программист немного подумал, потом сказал:

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

- А попроще нельзя?

- К сожалению, если мы заранее не назначили "горячую клавишу" на макрос, то назначить уже нельзя. Только вот таким извратным способом.

- Дурдом какой то, - произнесла Лена.

- Ладно, нам пора. Вижу, польза от макросов есть, - сказала я, - но программировать мы еще пока не начинали, только все макросы да макросы создаем.

- Ладно, в следующий раз  уже программу будем делать.

 

Последнее обновление ( 12.05.2013 г. )
 
« След.   Пред. »
 
© 2026 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги