- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Интернет-журнал 'Домашняя лаборатория', 2007 №7 - Глуховский
Шрифт:
Интервал:
Закладка:
Часть команды "Else…" можно опустить, а просто написать нужные инструкции после команды "If…" — ведь все равно к их выполнению программа не перейдет до тех пор, пока останутся открытые документы. А поместить там, наверное, стоит вызов сообщения, желательно со звуковым сигналом, — чтобы можно было поставить документы на обработку и отойти. Используем функцию MsgBox (о ее синтаксисе подробно написано в Справочной системе по VBA, в русской версии Microsoft Office 97 — даже по-русски):
signal = MsgBox ("Обработка закончена", vbln formation, "Обработка текстов")
Ну, вот и все. Итак, наша программа теперь выглядит так:
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 13.01.02 metka:
'
Selection.WholeStory
With Selection.Font
Name = "Times New Roman"
Size = 12
Colorlndex = wdBlack
End With
With Selection.ParagraphFormat
LeftIndent = CentimetersToPoints(0)
Rightlndent = CentimetersToPoints(0)
SpaceBefore = 0. SpaceAfter = 0
LineSpacingRule = wdLineSpaceSingle
FirstLineIndent = CentimetersToPoints(1.27)
End With
Selection.Find.ClearFormatting
Selection.Find.ParagraphFormat.Alignment = wdAlignParagraphLeft
Selection.Find.Replacement.ClearFormatting
Selection. Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphJustify
With Selection.Find
Text = ""
Replacement.Text = ""
Forward = True
Wrap = wdFindContinue
Format = True
MatchCase = False
MatchWholeWord = False
MatchWildcards = False
MatchSoundsLike = False
MatchAHWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.Save
ActiveDocument.SaveAs FileName:= Left (ActiveDocument.FullName, Len(ActiveDocument.FullName) -4), FileFormat:=wdFormatRTFActiveWindow.Close
ActiveWindow.Close
If Documents.Count > 0 Then GoTo metka
signal = MsgBox ("Обработка закончена", vblnformation, "Обработка текстов")
End Sub
Итак, программа готова. Можно с помощью диалогового окна "Настройка"
назначить ей кнопку, пункт меню или сочетание клавиш, и запускать ее при необходимости.
Однако попробуем ее еще улучшить. Сделаем так, чтобы все обработанные документы сохранялись не в своих папках, а в отдельной, задаваемой пользователем, и чтобы пользователь мог выбрать эту папку из стандартного диалогового окна, похожего на Проводник.
Опять воспользуемся Справкой.
В Предметном указателе Справочной системы по VBA из Microsoft Office 97 зададим слова "dialog boxes", выберем эту же строчку из списка тем (рис. 5.36).
Рис. 5.36. Как же отобразить диалоговые окна? Наверное, поискав в Справке по этим словам.
В появившемся окне выбора выберем второе — "Displaying Built-In Word Dialog-Boxes", так как это, судя по названию, более общая тема, чем список аргументов диалоговых окон (рис. 5.37).
Рис. 5.37. Выбор из двух вариантов — какой нам больше подойдет?
В появившемся окне читаем:
"You can display a built-in dialog box to get user input or to control Word by using Visual Basic. The Show method of the Dialog object displays and executes any action taken in a built-in Word dialog box. To access a particular built-in Word dialog box, you specify a WdWordDialog constant with the Dialogs property. For example, the following macro instruction displays the Open dialog box (wdDialogFileOpen): Dialogs(wdDialogFileOpen).Show."
В переводе это означает, что с помощью команды Dialogs("имя диалога").Show можно вызвать на экран любое встроенное диалоговое окно Word, вроде окна открытия файла или сохранения в папке.
В Microsoft Office 2000/ХР помещение в "Мастер ответов" или "Предметный указатель" Справочной системы VBA слов "dialog boxes" приведет к появлению довольно большого списка разделов, содержащих данные слова (рис. 5.38), так что выбор придется делать непростой. Однако найти наиболее подходящий для нашего случая раздел — "Displaying Built-In Word Dialog-Boxes" — все же можно довольно быстро.
Рис. 5.38. Поиск no словам "dialog boxes" в Справочной системе VBA Microsoft Office XP.
Текст же в разделе "Displaying Built-In Word Dialog-Boxes" практически идентичен тексту такого же раздела из Справочной системы по VBA из Microsoft Office 97.
Итак, нужная нам команда — Dialogs("имя диалога").Show — найдена.
Попробуем найти окно, которое возвращало бы путь к какой-нибудь директории. Для этого создадим очередной экспериментальный модуль и будем перебирать в нем все возможные имена диалоговых окон (рис. 5.39).
Рис. 5.39. Для поиска нужной команды можно перебрать список встроенных диалоговых окон Word.
В качестве метода вывода окна на экран установим".Display" — вывод окна на экран без каких-либо последующих действий: если с помощью команды
Dialogs(wdDialogFileOpen).Show будет выведено окно открытия файла, то при нажатии кнопки "Открыть" в нем выбранный в окне файл будет открыт, а если окно выводилось командой Dialogs(wdDialogFileOpen).Display, то открытия файла не произойдет, но имя выбранного файла можно будет записать в переменную:
With Dialogs(wdDialogFileOpen)
Display
imya=.Name
End With
и впоследствии использовать это имя по своему усмотрению.
При использовании встроенных диалоговых окон Word обязательно использование оператора With, так как, казалось бы, эквивалентный фрагмент кода
Dialogs(wdDialogFileOpen).Display
imya= Dialogs(wdDialogFileOpen).Name
работать не будет.
После перебора остановимся на окне Dialogs(wdDialogCopyFile) — копирование файла. Посмотрев ссылку "Built-in dialog box argument lists" окна "Displaying built-in Word dialog boxes" (в Справочной системе VBA из Microsoft Office 2000/XP этот раздел присутствует в результатах поиска по словам "dialog boxes", рис. 5.40), получаем список всех возможных аргументов диалоговых окон (то есть параметров, значения которых можно получить из окон или задать им).
Рис. 5.40. Microsoft Office XP. Справка по параметрам встроенных диалоговых окон.
Нас интересует параметр "Directory" (папка, куда скопируется файл, указанный в параметре "FileName" при выполнении метода "Show" или "Execute" — при выполнении последнего метода происходит задание параметров диалогового окна или получение из них необходимой информации без отображения собственно диалога). Поэкспериментируем с этим окном — напишем в экспериментальном модуле следующий код:
Sub experience4 ()
With Dialogs(wdDialogCopyFile)
Display
papka =.Directory
End With
MsgBox papka
End Sub
Запустив эту программу несколько раз, получаем, что в переменную "papka" записывается путь и имя папки, но, если в пути или имени были пробелы, то путь окаймляется кавычками: "C: Program FilesMicrosoft OfficeШaблoны", а если пробелов в пути не было, то кавычки по