Подскажите дилетанту

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Подскажите дилетанту

Сообщение PAP » 09.03.2006 (Чт) 17:07

Подскажите, пожалуйста, можно ли в данном фрагменте:
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _
Address:=
вставлять адресс ссылки из буфера?
Спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.03.2006 (Чт) 17:08

Да.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 09.03.2006 (Чт) 17:10

Тогда подскажите как, если не сложно.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.03.2006 (Чт) 17:12

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

AntonK18
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 19.02.2006 (Вс) 16:20
Откуда: Ростов-на-Дону

Сообщение AntonK18 » 09.03.2006 (Чт) 17:17

PAP
В кавычках адрес пиши
Самый лучший язык программирования - BASIC

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 09.03.2006 (Чт) 17:26

Спасибо за ссылку, но видимо я совсем дилетант и я не очень понял, как это можно сделать. Я попробовал поставить Address:=GetFromClipboard - но выдает ошибку.

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 09.03.2006 (Чт) 17:29

AntonK18
Мне как раз необходимо из буфера.Этот макрос я делаю в Ворде, причем вначале щелкаю кнопками, а потом смотрю в редакторе что получилось (навыки программирования у меня минимальные). И вот несмотря на то, что я вставляю из буфера, в коде записывается, как текст в кавычках...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.03.2006 (Чт) 17:30

Я, конечно, всё понимаю, но не настолько же...

http://bbs.vbstreets.ru/viewtopic.php?p=6589162#6589162
Выполняем код. Смотрим, что появляется в msgbox. Делаем выводы.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 09.03.2006 (Чт) 17:51

GSerg
Спасибо!
Пришлось поломать голову, но в итоге все работает.
Спасибо, еще раз!

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 10.03.2006 (Пт) 18:26

Подскажите, если не сложно, как написать макрос убирающий в Ворде гиперссылки, но при этом чтобы текст ссылки остался?Пытался попробовать в лоб, но не получилось - удаляет все сразу...
Заранее спасибо.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.03.2006 (Пт) 18:30

Код: Выделить всё
Dim f As Field

For Each f In ThisDocument.Fields
  If f.Type = wdFieldHyperlink Then f.Unlink
Next
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 10.03.2006 (Пт) 18:36

GSerg
Спасибо. Этот код требует доработки? Я запустил его, но ничего не произошло.

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 10.03.2006 (Пт) 18:48

Что-то не получается...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.03.2006 (Пт) 18:53

Этот код не требует доработки. Разве что тогда вопрос требует уточнения...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 11.03.2006 (Сб) 22:35

GSerg писал(а):Этот код не требует доработки. Разве что тогда вопрос требует уточнения...

Я на всякий случай проверил на домшнем компе, однако результат по-прежнему отрицательный. Возможно, я не очень внятно описал ситуацию. Попробую разъяснить подробнее. Существует задача: убрать в документе Ворда все гиперссылки (то есть www.yandex.ru превратить в текст). Я пробовал убрать через изменение стиля, однако получилось, что вместе со ссылкой удаляется и текст ссылки, а необходимо чтобы сам текст остался. Все мои остальные попытки оказались неудачными, так как использую, вероятно, самые примитивные инструменты. Помогите, пожалуйста.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.03.2006 (Вс) 5:29

Приведённый код делает именно это. В том документе, из которого запущен.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 13.03.2006 (Пн) 9:57

GSerg
Я запускаю этот код из того документа, в котором мне нужно убрать ссылки, но ничего не происходит (ссылки как были, так и остаются...). Почему такое может происходить? Может есть какие-то нюансы связанные с Виндом или какими-то другими причинами?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.03.2006 (Пн) 13:22

Документ приложи.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 13.03.2006 (Пн) 14:13

GSerg
Да в общем-то документ-то как раз самый обычный. Я прикоеплю только часть документа (так как он довольно внушительных размеров). Кстати, я пробовал на разных документах - результат отрицательный.

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 13.03.2006 (Пн) 14:21

Что-то не получилось добавить приложение с первого раза....
Вложения
Ex.zip
Часть документа
(20.97 Кб) Скачиваний: 23

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.03.2006 (Пн) 16:09

Замечательно заменились все.

А что, не в normal ли dot был помещён этот код?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 13.03.2006 (Пн) 16:31

GSerg
То есть? Он у меня в макросах сохранен... Вызываю макрос через кнопку в панели Ворда... Наверное панель является частью Шаблона, хотя не знаю.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.03.2006 (Пн) 16:37

:roll:

PAP
GSerg писал(а):Приведённый код делает именно это. В том документе, из которого запущен.

Ы?

ThisDocument = документ, в котором физически находится макрос. И именно на него оказывается влияние (о чём было сказано дважды).
Текущий документ - ActiveDocument.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 13.03.2006 (Пн) 16:49

GSerg
Ну теперь мне понятно. Хотя не все. Я просто заменил ThisDocument на ActiveDocument и все заработало. Спасибо. Прошу прощения за вопиющий дилетантизм, но вроде и ветка для начинающих :)
Я просто давно хочу освоить VB, а тут выдался удобный повод - по роду деятельности есть необходимость в создании эдакой системы по обработке текста в Ворде (хотя это наверное громко сказано). Так что огромное спасибо.
:?:
А есть ли электронные книги по работе с VBA? Доступные и фундаментальные? Если нет, то может быть из печатной есть удачные издания. Так как сейчас большое количество печатается, но многое из этого довольно специфично (наблюдения по своей проф. области)

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 13.03.2006 (Пн) 18:29

GSerg писал(а):
Код: Выделить всё
Dim f As Field

For Each f In ThisDocument.Fields
  If f.Type = wdFieldHyperlink Then f.Unlink
Next

А можно ли по этому же принципу конвертировать все таблицы в текст, а также удалять все графические объекты в тексте?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.03.2006 (Пн) 18:38

Да.
Lasciate ogni speranza, voi ch'entrate.

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 13.03.2006 (Пн) 18:58

А какой тип переменной f в таком случае надо указывать?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.03.2006 (Пн) 20:52

Скорее всего Table и Shape, но лучше проверь.
И да, Untable и Unshape методов нет, надо будет делать по другому.
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.03.2006 (Вт) 5:04

Угу. Методом converttotext.

PAP
Меня терзают смутные сомненья.
Нажимал ли ты F2 когда-нибудь в редакторе кода?
Потому что если нажимал, то ничего, кроме английского языка, там знать не нужно для полного понимания происходящего.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

PAP
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 09.03.2006 (Чт) 16:57

Сообщение PAP » 14.03.2006 (Вт) 10:48

GSerg писал(а):Меня терзают смутные сомненья.
Нажимал ли ты F2 когда-нибудь в редакторе кода?
Потому что если нажимал, то ничего, кроме английского языка, там знать не нужно для полного понимания происходящего.

Признаюсь, что нажимал. Не скажу, что в совершенстве владею английским, но читать более менее могу. Не знаю, согласится со мной кто-то или нет, но если ты полный ноль в этом, то Help никогда никому не помогал существенно. Во всяком случае, пока ты не будешь разбирать практические примеры, параллельно изучая все тот же Help и список операторов (видимо не только), выводимый F2, а еще лучше какую-нибудь толковую книгу (про которую мне никто, кстати, ответил), продвижений не будет.
:) Кстати, до сих пор пытаюсь создать код, конвертирующий все таблицы в текст и при этом не выдающий сообщений, прерывающих весь код, в который он встроен, если таблиц в тексте нет. F2 использую, но пока не получилось. Но думаю, что это вопрос времени.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 30

    TopList