1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
|
1 | |
Найти слово в документе MS Word и выделить его30.08.2013, 17:11. Показов 12271. Ответов 28
Метки нет (Все метки)
Всем хай =) возникла такая проблема , нужно программно выделить слово в office word , чтоб вы делить все достаточно просто с иметировать нажатие клавиш ctrl+A но вот как выделить опред слово ? может кто встречался и знает ....
0
|
30.08.2013, 17:11 | |
Ответы с готовыми решениями:
28
Microsoft Word найти слово в документе и заменить его Найти слово в документе MS Word Как найти слово в документе Word Как выделить текст в документе word |
13106 / 5887 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
31.08.2013, 04:35 | 2 |
vuasya, может такой вариант подойдёт: Происк текста в файле документа MS Word. ? Программа открывает файл в MS Word, ищет заданную подстроку и если она найдена, то выделяет её и прокручивает документ таким образом, чтобы найденная подстрока попала в область видимости.
2
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
|
31.08.2013, 21:14 [ТС] | 3 |
Mawrat, т.е например у меня открыть office world и там мне нужно выделить определенное слово но программно , я использую пример что ты мне дал и настраиваю его под себя , и нажимаю на кнопку и текст в окне office world выделиться так ?
0
|
13106 / 5887 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
31.08.2013, 22:39 | 4 |
Да, верно - текст выделится. И кроме этого, документ будет прокручен таким образом, что выделенный текст окажется в области видимости.
0
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
|
31.08.2013, 23:35 [ТС] | 5 |
Mawrat, спасибо вам , все работает прекрасно ! но вот не поможете ли вы еще мне в кое чем , мне нужно чтоб программа работала уже в готовом открытом приложении , а не создавала сама
просто присвоить значение переменной Od.FileName к пути запуску определенного файла ничего не даст . как быть ?
0
|
13106 / 5887 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|||||||||||
01.09.2013, 05:11 | 6 | ||||||||||
Тогда понадобится не запускать новый экземпляр MS Word, а подключиться к уже запущенному экземпляру. В этом случае надо заменить вызов CreateOleObject() на GetActiveOleObject().
Полностью код будет выглядеть так:
Ещё можно сделать так. Подключаемся к запущенному экземпляру MS Word. Потом, среди открытых документов ищем тот, чьё имя файла совпадает с заданным и выполняем поиск в этом документе. Имя файла пускай будет выбираться через OpenDialog.
1
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
|
01.09.2013, 09:52 [ТС] | 7 |
Mawrat, огромное просто спасибо ! я никогда не работал с ms world и такого даже не знал , огромное просто вам СПАСИБО !
0
|
13106 / 5887 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||
01.09.2013, 11:35 | 8 | |||||
Пожалуйста.
Что касается имени файла. Сейчас в программе проверяется полный путь к файлу. Если есть возможность того, что пользователь может открывать нужный документ из разных папок, то, соответственно, полный путь к файлу может быть разным. Тогда при поиске среди открытых документов можно проверять, например, имя файла без полного пути (свойство Name, вместо FullName):
Только надо иметь в виду, что в MS Word можно открыть одновременно несколько документов с одним и тем же именем файла. В этом случае программа подключится к первому такому документу.
0
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
|
01.09.2013, 11:39 [ТС] | 9 |
Mawrat, спасибо , учту !
а на этот вопрос сможете ответить ? разделение окна ибо как всегда никто такого не делал ...может вы знаете ?
0
|
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 2
|
|
20.01.2016, 13:17 | 10 |
Как зделать чтобы искало не только первое вхождения а и все последующие. Заранее благодарен.
0
|
0 / 0 / 1
Регистрация: 21.01.2021
Сообщений: 199
|
|
09.04.2024, 13:23 | 11 |
Привет.
А как быть, если искомый текст встречается в документе несколько раз? Как их все найти и заменить текстом?
0
|
Модератор
|
|
09.04.2024, 14:19 | 12 |
Есть такое слово - "цикл". Организуйте цикл поиска до тех пор, пока искомое слово не перестанет встречаться - после этого цикл заканчивается. А пока цикл не закончен, в теле цикла выполняете необходимые преобразования над найденным словом.
0
|
0 / 0 / 1
Регистрация: 21.01.2021
Сообщений: 199
|
||||||
09.04.2024, 14:47 | 13 | |||||
Циклы то я знаю. Только какие пределы ему указать: начало и конец документа? Вызываю функцию так:
0
|
Заблокирован
|
|
09.04.2024, 15:19 | 14 |
А вы не ошиблись адресом? Тут форум по Delphi вообще-то.
Вам так трудно VBA освоить? Даже если хотите замутить расширение для Word, то возьмите Visual Studio. Там прекрасный шаблон. Что касается выделения слова... В Word есть команды. Выделить слово на котором стоит курсор. Или абзац. А если по поиску, то все само выделится. Вот если бы вы спросили как это сделать в RichEdit... Это уже интересный вопрос. И кстати, далеко не все это умеют.
0
|
Модератор
3714 / 2221 / 774
Регистрация: 15.11.2015
Сообщений: 8,854
|
|
09.04.2024, 15:36 | 15 |
leors, обрати внимание на даты - вопрос был задан 10 лет назад. Вряд ли уже актуально для ТС.
0
|
Модератор
|
|
09.04.2024, 16:24 | 17 |
Да нет, просто 301sem вытащил из небытия тему 10-летней давности, ему, однако, актуально...
Ну, так-то, никто не мешает работать с документами Word из Дельфи-приложений. И если бы ТС-у нужен был бы VB или VS - он, скорее всего, обратился бы в нужный раздел. Но ему надо это сделать именно из Дельфи. Целесообразность этого сейчас не обсуждается: вопрос задан и только Вам решать - отвечать в этой теме или нет. Советую освежить свои знания, в частности про цикл while, а так же посмотреть, как обрабатывается результат функции. Обладая этой информацией Вы легко решите свою задачу.
0
|
Заблокирован
|
|
09.04.2024, 23:04 | 18 |
Смысла в этом никакого нет.
Намного удобнее написать обычное приложение, которое обработает текстовый документ. Файл можно сконвертировать в HTML и делать с ним что угодно. Точно так же элементарно открыть файл docx. А писать в Delphi что элементарно делает простой макрос пустая трата времени. Дублировать макрос... Зачем?
0
|
0 / 0 / 1
Регистрация: 21.01.2021
Сообщений: 199
|
||||||||||||||||
12.04.2024, 16:47 | 19 | |||||||||||||||
что-то все равно не получается легко. И так и сяк пытался, заменяет только первое попавшееся
Добавлено через 8 минут
Добавлено через 1 час 4 минуты погано конечно, но сработало так
а так тоже не работает
0
|
3756 / 2261 / 703
Регистрация: 29.05.2013
Сообщений: 9,593
|
|
12.04.2024, 17:22 | 20 |
Зачем же вы делаете бесконечный, неконтролируемый цикл? Очевидно, что цикл должен заканчиваться в случае неудачного поиска, но вы этой проверки не делаете.
0
|
12.04.2024, 17:22 | |
12.04.2024, 17:22 | |
Помогаю со студенческими работами здесь
20
Выделить в MS Word 2007 выделить каждое четвёртое слово В текстовом документе найти самое длинное слово и удалить его из этого документа Выделить в документе самое короткое слово. Найти слово во фразе в выделении и выделить его Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |