Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 07:37   #1
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию Вытаскивание слов из автофигур

Кто-то скопировал из интернета рисунок и в результате каждое слово оказалось в автофигуре (типа надписи). Такие автофигур столько, сколько слов. Можно ли преобразовать эти автофигуры в текст?

Сделать так, чтобы эти слова оказались ниже в столбик
Busine2009 вне форума Ответить с цитированием
Старый 27.05.2009, 09:19   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Пример файла выложите.
А этому кому-то скажите, что нужно аккуратнее быть с рисунками из Интернета
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 27.05.2009, 21:18   #3
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Вот файла, которое...
Вложения
Тип файла: doc Вставить текст сюда.doc (42.5 Кб, 12 просмотров)

Последний раз редактировалось Busine2009; 27.05.2009 в 21:20.
Busine2009 вне форума Ответить с цитированием
Старый 27.05.2009, 22:52   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

В предложенном файле такой макрос работает.
Код:
Sub GetTextFromCaptions()
  Dim oShp As Shape, oCnvItem As Shape
  For Each oShp In ActiveDocument.Shapes 'Перебираем все фигуры в документе
'Если фигура является полотном, т.е. может содержать в себе другие фигуры, _
то перебираем фигуры внутри полотна
    If oShp.Type = msoCanvas Then
      For Each oCnvItem In oShp.CanvasItems
'Если фигура внутри полотна имеет текст, то текст из нее вставляем в конец документа
        If oCnvItem.TextFrame.HasText Then
          ActiveDocument.Range.InsertParagraphAfter
          ActiveDocument.Range.InsertAfter oCnvItem.TextFrame.TextRange.Text
        End If
      Next
'Если в фигуре (не полотне) есть текст, то вставляем его в конец документа
    ElseIf oShp.TextFrame.HasText Then
      ActiveDocument.Range.InsertParagraphAfter
      ActiveDocument.Range.InsertAfter oShp.TextFrame.TextRange.Text
    End If
  Next
End Sub
У этого макроса, по-моему, один недостаток: он не будет работать с фигурами, которые расположены в тексте. В VBA такие фигуры входят в коллекцию InlineShapes.
Я могу посоветовать потренироваться и самостоятельно написать код для работы с InlineShapes.

Примечание: Внутри полотна InlineShapes не может быть.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 28.05.2009, 07:15   #5
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Не могу себя заставить потренироваться.

Спасибо, работает.

Последний раз редактировалось EducatedFool; 02.06.2009 в 21:57.
Busine2009 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
прогрманое вытаскивание компонента Juffin Общие вопросы Delphi 11 22.04.2009 11:55
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19
Вытаскивание ссылок из текста jocry Общие вопросы Delphi 2 10.02.2009 16:51
Как настроить печать автофигур в ms word??? 181988 Помощь студентам 1 08.09.2008 13:42