Читаем Интернет-журнал "Домашняя лаборатория", 2007 №7 полностью

Sub clipboard_hide()

CommandBars("Clipboard").Enabled = False

End Sub

Макрос для показа панели:

Sub clipboard_show()

CommandBars("Clipboard").Enabled = True

CommandBars("Clipboard").Visible = True

End Sub

К счастью, в Word ХР эта рекомендация уже неактуальна — там Область задач с вкладкой "Буфер обмена" вызывается только тогда, когда дважды нажата комбинация клавиш Ctrl+C.


6.

"Как определить с помощью макроса в документе "Word, текущий номер страницы, где произошло при поиске вхождение заданной подстроки."

Существуют функции Selection.Information(wdActiveEndPageNumber), которая возвращает номер страницы по счету, на которой располагается конец выделения, и функция Selection.Information(wdActiveEndAdjustedPageNumber), которая возвращает присвоенный номер страницы, на которой располагается выделенный фрагмент. Вторую функцию следует использовать тогда, когда необходимо получить тот номер страницы, который указан на ней непосредственно (т. е. с учетом ручных установок нумерации), а первую — если номер необходим абсолютный. Описание обеих команд можно получить в Справке VBA по слову Information.

При работе подпрограммы поиска каждое вхождение выделяется. Вот, к примеру, фрагмент кода макроса, который отображает в диалоговом окне номера страниц, на которых найден текст "text".

Selection.HomeKey Unit:=wdStory

Dim a As String

a = ""

Selection.Find.ClearFormatting

Selection.Find.Replacement.ClearFormatting

With Selection.Find

Text = "text"

Forward = True

Wrap = wdFindStop

End With

While Selection.Find.Execute = True

a = a + " " + Str(Selection.Information(wdActiveEndPageNumber))

Wend

MsgBox a


7.

"Открыт документ Word, хочу запустить в нем макрос, который в свою очередь запускает макрос Excel, обрабатывающий Excel-таблицу. После этого через Clipboard из Excel макрос пересылает в Word-документ заданную прямоугольную область таблицы. Макрос Word обрабатывает эту область и начинает в требуемой последовательности копировать в Word-документ через Clipboard фрагменты Excel-таблицы. По окончании копирования Word закрывает все ненужные макросы, включая макрос Excel. Как все это сделать, чтобы работало?"

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

Так, чтобы можно было из Word'oвoro макроса работать с Excel'ем, следует создать объект Excel.Sheet (здесь "es" — простое наименование переменной, у вас может быть любым).

Dim es As Object

Set es = CreateObject("Excel.Sheet")

Если надо сразу открыть какой-либо файл Excel'а, то можно использовать команду GetObject:

Set es= GetObject("Путь к файлу Excel'a")

При желании можно сделать созданный объект Excel видимым:

es.Application.Visible = True

Теперь можно этому объекту es (т. е. просто запущенному Excel'у) посылать команды такие же, как и в макросах Excel'a (предваряя текстом "es.Application." те из команд, которые не требуют прямого указания объекта, — так как надо дать понять программе, что работа идет именно с Excel'ем). Так, чтобы открыть файл Excel'а, можно также дать команду

es.Application.Workbooks.Open FileName:="Путь к файлу Excel'a"

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

es.Cells(1, 1).Value = "Это столбец А, строка 1"

В принципе я бы вам посоветовал поместить тот макрос, который Вы планировали для Excel'a, именно в исходный Word'oBbrii, переписав его команды в соответствии с принципом связывания (т. е. управления одним приложением из другого — так, как описано выше).

Перейти на страницу:

Похожие книги

Лучшие модели на любую фигуру без примерок и подгонок
Лучшие модели на любую фигуру без примерок и подгонок

Книга представляет собой сборник, который содержит схемы построения чертежей из двух предыдущих бестселлеров автора, а также предлагает ряд новых моделей. Галия Злачевская – автор эксклюзивной методики конструирования швейных изделий. Особенность ее метода в том, что вариант построения модели подбирается с учетом особенностей силуэта фигуры, поэтому крой сразу получается точным. И главное – больше никаких примерок и подгонок! Следуя простым рекомендациям автора, вы легко сможете «шаг за шагом» освоить эту методику и в итоге – получите идеально сидящую вещь.Вы научитесь создавать современные, неповторимые и оригинальные модели для мужчин, женщин, детей и даже малышей до 3 лет с минимальными затратами времени и сил.

Галия Мансуровна Злачевская

Сделай сам / Хобби и ремесла / Дом и досуг