Объект Selection (PowerPoint)
Представляет выбор в указанном окне документа. Объект Selection удаляется при каждом изменении слайдов в активном представлении слайдов (свойство Type вернет ppSelectionNone).
Пример
Используйте свойство Selection, чтобы возвратить объект Selection. В следующем примере копия выделенного фрагмента размещается в активном окне в буфере обмена.
ActiveWindow.Selection.Copy
Используйте свойства ShapeRange, SlideRange или TextRange , чтобы вернуть диапазон фигур, слайдов или текста из выделенного фрагмента.
В следующем примере задается цвет переднего плана заливки для выбранных фигур во окне 2, при условии, что выбрана хотя бы одна фигура, и при условии, что все выбранные фигуры имеют заливку, передний цвет которой можно задать.
With Windows(2).Selection.ShapeRange.Fill .Visible = True .ForeColor.RGB = RGB(255, 0, 255) End With
В следующем примере задается текст в первой выделенной фигуре в окне 2, если эта фигура содержит текстовый кадр.
With Windows(2).Selection.ShapeRange(1) If .HasTextFrame Then .TextFrame.TextRange = "Current Choice" End If End With
В следующем примере выделенный текст вырезается в активном окне и помещает его в буфер обмена.
ActiveWindow.Selection.TextRange.Cut
В следующем примере дублируются все слайды в выделенном фрагменте (если вы находитесь в режиме слайда, это дублирует текущий слайд).
ActiveWindow.Selection.SlideRange.Duplicate
Если при использовании одного из этих свойств не выбран объект соответствующего типа (например, если вы используете свойство ShapeRange , если фигуры не выбраны), возникает ошибка. Используйте свойство Type , чтобы определить, какой тип объектов или объектов выбран. В следующем примере проверяется, содержит ли выделенный фрагмент слайды. Если выделенный фрагмент содержит слайды, в примере задается фон для первого слайда в выделенном фрагменте.
With Windows(2).Selection If .Type = ppSelectionSlides Then With .SlideRange(1) .FollowMasterBackground = False .Background.Fill.PresetGradient _ msoGradientHorizontal, 1, msoGradientLateSunset End With End If End With
Методы
Свойства
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Отправить и просмотреть отзыв по
Метод Shape.Select (PowerPoint)
Выражение Переменная, представляющая объект Shape .
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| Replace | Необязательный | MsoTriState | Указывает, заменяет ли выделенный фрагмент какой-либо предыдущий фрагмент. |
Замечания
Если вы попытаетесь сделать выбор, который не подходит для представления, код завершится ошибкой. Например, можно выбрать слайд в режиме сортировщика слайдов, но не в режиме слайдов.
Значение параметра Replace может быть одной из этих констант MsoTriState .
| Константа | Описание |
|---|---|
| msoFalse | Выделенный фрагмент добавляется к предыдущему фрагменту. |
| msoTrue | Значение по умолчанию. Выделенный фрагмент заменяет все предыдущие выделенные фрагменты. |
Пример
В этом примере выбирается фигура на слайде 1 в активной презентации.
ActivePresentation.Slides(1).Shapes(1).Select
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Отправить и просмотреть отзыв по
Как на vba powerpoint получить выделенный объект?
Очень нужно сочинить макрос на VBA, который бы очищал формат с выделенных ячеек таблицы вставленной в PowerPoint (версия Office 2016).
Алгоритм: я выделяю мышкой несколько ячеек в таблице, которая размещена на слайде и кликаю на кнопку запуска макроса. Для выделенных ячеек, устанавливается, к примеру, черный цвет текста и белый фон.
Как получить текущие выделенные объекты, чтобы потом с ними можно было поработать?
- Вопрос задан более трёх лет назад
- 291 просмотр
Как на vba powerpoint получить выделенный объект
хотябы через какие методы можно перетащить в ворд
—
Здесь это уже обсуждалось, впрочем, чего только здесь не обсуждалось 🙂
Копируем Excel-диаграмму как рисунок:
1. Выделить диаграмму.
2. Зажать Shift
3. Мышой сходить в меню: Правка — Копировать рисунок — OK
4. Отпустить Shift
5. Зайти в Word и вставить рисунок диаграммы
Аналогично можно скопировать и рисунок таблицы.
Таблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. при этом останется возможность ее редактирования в Word-e.
—
ZVI
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
16.03.2008 04:29:37
хотябы через какие методы можно перетащить в ворд
—
Здесь это уже обсуждалось, впрочем, чего только здесь не обсуждалось 🙂
Копируем Excel-диаграмму как рисунок:
1. Выделить диаграмму.
2. Зажать Shift
3. Мышой сходить в меню: Правка — Копировать рисунок — OK
4. Отпустить Shift
5. Зайти в Word и вставить рисунок диаграммы
Аналогично можно скопировать и рисунок таблицы.
Таблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. при этом останется возможность ее редактирования в Word-e.
—
ZVI
—
Так как вопрос был о макросе, то следует добавить, что макрос для копирования как рисунка чего-то выдленного в Excel-е можно получить макрорекодером.
Результат будет похож на это:
Sub Макрос1()
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End Sub
16.03.2008 11:11:58
Копируем Excel-диаграмму как рисунок:
1. Выделить диаграмму.
2. Зажать Shift
3. Мышой сходить в меню: Правка — Копировать рисунок — OK
4. Отпустить Shift
5. Зайти в Word и вставить рисунок диаграммы
Аналогично можно скопировать и рисунок таблицы.
Таблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. при этом останется возможность ее редактирования в Word-e.
—
ZVI
—
Так как вопрос был о макросе, то следует добавить, что макрос для копирования как рисунка чего-то выдленного в Excel-е можно получить макрорекодером.
Результат будет похож на это:
Sub Макрос1()
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End Sub
—
ZVI
автор сам то пробовал записать макрос который вставлял бы в ворд.
аблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. — это все не работает. там необходимо создать объект и при помощи методов думаю как то можно передать это все в созданый объект ворд. например для передачи текста используется
.TyprText «. «
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
17.03.2008 06:47:29
—
Анониму, что не сдержался:
1. Ну не хватило человеку слов и забора! – Сочувствую.
2. Если Вам действительно нужна помощь, то напишите внятно, что у Вас не получается, может кто и захочет помочь.
Для zet3xxx в прилагаемом архиве есть Word-документ “ИЗ_EXCEL_В_WORD.DOC”, в котором различными методами из Excel перенесена таблица с диаграммой: посмотрите, какой из этих методов Вам подходит.
Для тех, у кого есть проблемы с копированием выделенного фрагмента в Word и Powerpoint, прилагается небольшая надстройка ZVI_CopyFromExcel.XLA.
Позволяет копировать 3-мя способами: как обычно, как рисунок и как объект.
Устанавливается через меню: Сервис – Надстройки – Обзор.
Или просто загружается с разрешением макросов.
Вызов надстройки – с помощью кнопки (W) в правой части панели управления “Стандартная”.
Надстройка протестирована с Office 2003. но вроде должна работать и с другими офисами.
—
ZVI
Прикрепленные файлы
- post_11612.rar (53.42 КБ)
17.03.2008 17:13:29
—
Анониму, что не сдержался:
1. Ну не хватило человеку слов и забора! – Сочувствую.
2. Если Вам действительно нужна помощь, то напишите внятно, что у Вас не получается, может кто и захочет помочь.
Для zet3xxx в прилагаемом архиве есть Word-документ “ИЗ_EXCEL_В_WORD.DOC”, в котором различными методами из Excel перенесена таблица с диаграммой: посмотрите, какой из этих методов Вам подходит.
Для тех, у кого есть проблемы с копированием выделенного фрагмента в Word и Powerpoint, прилагается небольшая надстройка ZVI_CopyFromExcel.XLA.
Позволяет копировать 3-мя способами: как обычно, как рисунок и как объект.
Устанавливается через меню: Сервис – Надстройки – Обзор.
Или просто загружается с разрешением макросов.
Вызов надстройки – с помощью кнопки (W) в правой части панели управления “Стандартная”.
Надстройка протестирована с Office 2003. но вроде должна работать и с другими офисами.
—
ZVI
Прикрепленные файлы
- post_11685.xls (31.5 КБ)
17.03.2008 17:20:18
мне подходит так то 2 вариант т е вставить как карртинку но
суть должна быть в следующем:
выделяем например таблицу и диаграмму в экселе запускаем макрос он создает ворд-документ, и вставляет в него скопированные таблицу и диаграмму.
создать Ворд документ можно так
Set objWord = CreateObject(«Word.Application»)
в прикрепленном файле пример создания ворд-документов но там только передача данных из ячеек в ворд в форме текста.
Прикрепленные файлы
- post_11686.xls (31.5 КБ)
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
18.03.2008 03:17:26
суть должна быть в следующем:
выделяем например таблицу и диаграмму в экселе запускаем макрос он создает ворд-документ, и вставляет в него скопированные таблицу и диаграмму.
создать Ворд документ можно так
Set objWord = CreateObject(«Word.Application»)
в прикрепленном файле пример создания ворд-документов но там только передача данных из ячеек в ворд в форме текста.
—
Решение — в приложении.
На 1-й лист добавил условную таблицу и диаграмму, рисунок которых теперь копируется в каждый Word-отчет.
В Вашем коде добавил 3 небольших фрагмента, они прокомментированы.
В реальных отчетах таблицы и диаграммы могут быть разными, но это уже дело техники.
—
ZVI
Прикрепленные файлы
- post_11742.xls (41 КБ)
18.03.2008 14:28:56
ZVI на твое примере стало понятно как вставить выделенный диапазон или диграмму, но встал другой вопрос. если в ексел-файле несколько таблиц нпример таб1, таб2. таб5, то хотелось сделать три кнопки
1-создает документ ворд
2-добавляет в ворд выделенный объект
3- сохраняет документ ворд
помоги такое сделать сам не могу догнать как это сделать:(
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
19.03.2008 07:14:35
1-создает документ ворд
2-добавляет в ворд выделенный объект
3- сохраняет документ ворд
. как это сделать?(
—
В прилагаемом примере работают кнопки:
Создать Doc, Добавить (рисунок), Сохранить, Закрыть, Скрыть.
VBA-код прокомментирован
—
ZVI
Прикрепленные файлы
- post_11911.zip (18.02 КБ)
19.03.2008 14:35:13
1-создает документ ворд
2-добавляет в ворд выделенный объект
3- сохраняет документ ворд
. как это сделать?(
—
В прилагаемом примере работают кнопки:
Создать Doc, Добавить (рисунок), Сохранить, Закрыть, Скрыть.
VBA-код прокомментирован
—
ZVI
спсб то что нужно.
не могу понять а каким образом работает макрос который скрывает ворд и применение флага, где связка. О_о(кстати как такой создать??)
19.03.2008 14:35:38
1-создает документ ворд
2-добавляет в ворд выделенный объект
3- сохраняет документ ворд
. как это сделать?(
—
В прилагаемом примере работают кнопки:
Создать Doc, Добавить (рисунок), Сохранить, Закрыть, Скрыть.
VBA-код прокомментирован
—
ZVI
19.03.2008 14:47:12
че здесь такое творится вставляются левые коменты, а то что хочу ответить исчезает
вот что хотел ответить ZVI`:
это то что нужна спсб.
но можешь еще рассказать как взамодействуют макрос с видимость ворда и флгом. (кстати как его создать такой флаг
?)
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
19.03.2008 23:17:33
вот что хотел ответить ZVI`:
это то что нужна спсб.
но можешь еще рассказать как взамодействуют макрос с видимость ворда и флгом. (кстати как его создать такой флаг
?)
—
Приложен обновленный вариант, независящий от ссылки на конкретную версию Word (Reference не требуется).
В примере использованы 2 элемента “Флажок” панели управления “Формы” — подробности см. в справке. Флажки связаны с именованными ячейками J1 (имя “Скрыть”) и K1 (имя “ КопироватьРисунок ”). Флажки сгруппированы с соответствующими автофигурами кнопок, чтобы посмотреть все свойства флажка нужно сначала разгруппировать.
На флажок “Скрыть” назначен макрос DocVisibility(), в макросе есть связь с ячейкой [Скрыть], которая выглядит так:
objWord.Visible = ([Скрыть] = False)
Это выражение равносильно следующему:
If Not Range(«Скрыть») = False Then objWord.Visible = True Else objWord.Visible = False
Вот собственно и все нюансы, надеюсь, на этом можно закрыть тему.
—
ZVI
Прикрепленные файлы
- post_12054.rar (35.6 КБ)
20.03.2008 13:06:00
че то не так с этим файлом такое чуство что он постоянно обновляется нет никакой возможности что то сделать с доком
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
20.03.2008 14:41:07
—
Это могут быть проделки MISSING Reference.
Убрал вообще отладочную ссылку (Refetence ) на на Microsoft Word Object Library.
См. приложение
—
ZVI
Прикрепленные файлы
- post_12106.rar (34.17 КБ)
18.04.2008 10:45:26
Прошу прощения за свое вторжение. Представленный здесь макрос ругается типа: не может найти project or library. НАсколько я понимаю, ему нужно вот это — microsoft word object library, подцепляю, а в ответ та же фигня. Опять пишет, что не находит библиотеку. С чем это может быть связано?
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
18.04.2008 18:09:14
—
Предпоследний вариант может ругаться, если устьановлен не Word 2003, или не только он один, т.к. в VBA-проекте этого варианта использовался Reference на Microsoft Word 11.0 object Library, т.е. на Word 2003, и для других версий требуется поменять ссылку.
Но в последнесв варианте (post_12106.rar) проблем быть не должно, если на компьютере инсталлирован какой-нибудь MS Word и зарегистрирован как «Word.Application».
Убедитесь, что проверяете именно вариант с post_12106.rar, и что в нем Вы ничего не меняли сами.
Обращаю внимание, что отладочная строчка:
‘Dim objWord As Word.Application
в коде закомментирована!
Если проблема все же есть, то сообщите, на какую строчку кода ругается отладчик, какие версии Excel и Word установлены.
—
ZVI
18.04.2008 18:26:08
Спасибо, ZVI
С последним вариантом, действительно никаких проблем, вопрос возник по результатом тестирования предыдущих вариантов
12.09.2008 14:41:27
Старая тема, но все же актуальна. Все описанное ранее работает, за что большое спасибо. Вопрос в следущем, как вставлять копируемое в нужное нам место WORD с помощью макроса? То есть, с помощью чего можно осуществлять навигащию по документу WORD?
Новичок VBA (Miнск)
13.09.2008 20:36:05
А зачем вам «осуществлять навигащию по документу WORD»? Для этого существуют связи. Можно создать сотни связанных объектов в документе Word (OLE-клиенте). А потом просто обновлять документ, если в Excele (OLE-сервере)были сделаны изменения.
Пользователь
Сообщений: 4362 Регистрация: 23.12.2012
13.09.2008 23:44:02
—
Не понятно, что такое «нужное нам место WORD».
Но предположим, что необходимо в открытом документе “Документ1.doc” установить курсор в конец документа.
Запись макрорекодера в Word-е выглядит так:
Selection.EndKey Unit:=wdStory
Если написать эту строку полностью, то она будет выглядеть так:
Application.Selection.EndKey Unit:=wdStory
где Application – это объект Word-приложения,
а константа wdStory=6 (см. VBA Help Word-а)
Макрос в Excel-е, который сделает то же самое, будет таким:
‘ Даем переменной objWord ссылку на объект Word.Application
Set objWord = GetObject(, «Word.Application»)
‘ Даем переменной objDoc ссылку на документ
Set objDoc = objWord.Documents(«Документ1.doc»)
‘ Активируем документ
objDoc.Activate
‘ Теперь делаем то же, что и Word, заменяя Application на objWord
‘ и заменяя все константы Word-а на их числовые значения,
‘ т.к. Excel не понимаеи именованных констант Word-а
objWord.Selection.EndKey Unit:=6 ‘ где 6 = wdStory
Ниже приведен полностью VBA-код Excel, который ищет открытое приложение Word, затем ищет в нем отрытый документ «Документ1.doc» и копирует в конец этого документа выделенный фрагмент из Excel-я
‘ ZVI:2008-09-13 Из Excel в Word
‘ http://www.planetaexcel.ru/forum.php?thread_id=2813&page_forum=2
Sub CopyToOpenDocFromExcel()
Dim objWord, objDoc, RngXL
‘ Ищем открытое приложение Word
Set objWord = GetObject(, «Word.Application»)
If objWord Is Nothing Then
MsgBox («Не найден Word»), vbExclamation
Set objWord = Nothing
Exit Sub
End If
‘ Ищем открытый документ Документ1.doc
On Error Resume Next
Set objDoc = objWord.Documents(«Документ2.doc»)
If Err <> 0 Then
MsgBox («Не найден Документ1.doc»), vbExclamation
Set objDoc = Nothing
Set objWord = Nothing
Exit Sub
End If
‘ Перемещаемся в конец Word-документа
objDoc.Activate
objWord.Selection.EndKey Unit:=6 ‘ 6 = wdStory
‘ Копируем из Excel в Word
Selection.Copy ‘ это относится к Excel
objWord.Selection.Paste ‘ это уже относится к Word т.к. objWord
Application.CutCopyMode = False
End Sub
Аналогично можно использовать Word-ский код для поиска строки (метод Find).
