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

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.03.2006 (Вт) 16:31

PAP писал(а):Во всяком случае, пока ты не будешь разбирать практические примеры


Ну берём практический пример с гиперлинками. Модифицируем.

Код: Выделить всё
Dim t as table

For Each t In ThisDocument.tables
  t.converttotext
Next


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

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

Сообщение PAP » 14.03.2006 (Вт) 16:47

GSerg
На самом деле я пробовал такой вариант, но почему-то безуспешно. Когда скопировал этот код, то все получилось.... Тут впору вспомнить про танцора :) . Но не мытьем, так катаньем - проблему я решил, правда менее оригинально. Я воспользовался кодом в Help и просто немного его трансформировал.

Код: Выделить всё
Dim tableTemp As Table
Dim rngTemp As Range
    If ActiveDocument.Tables.Count > 0 Then
    Set tableTemp = ActiveDocument.Tables(1)
Set rngTemp = _
    tableTemp.ConvertToText(Separator:=wdSeparateByParagraphs)
    End If

Пользуясь случаем, хотел бы узнать, что означает скобка и цифра в ней в ActiveDocument.Tables(1)? F2 не помог...

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

Сообщение GSerg » 14.03.2006 (Вт) 16:55

В этом случае полезно изучить справку не word'а, а синтаксиса VB, ибо конструкция примерно из той же области, что if...then.

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

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

Сообщение alibek » 14.03.2006 (Вт) 16:56

Первая таблица в коллекции таблиц документа.
После преобразования в текст она исчезает из коллекции и ее место под номером один занимает следующая.
Вариант GSerg-а короче, проще, понятнее и изящнее. И логически более правилен.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение PAP » 15.03.2006 (Ср) 10:09

alibek
Ну и мне вариант GSerg как-то больше по душе пришелся, о чем я собственно и говорил.

GSerg
У меня есть подозрения, что справка у меня какая-то неполная на компе. Во-всяком случае очень часто у меня при обращении к более подробным разъяснениям (как мне кажется) выходит нетипичное для Винда окно с какими-то символами и предложением что-то установить (к стыду своему внимательно не изучил, так как установить ничего не могу на комп - нет прав).

Ну и вот решил замахнуться на более серьезную задачу. Хочу по устоявшейся здесь традиции получить для начала ответ "да" или "нет" :). Есть шаблон документа (Ворд), струкутра которого состоит из заголовков X(i). Есть также набор папок, название которых соответствует элементам структуры документа (то есть названия папок принадлежат Х(i)) и в каждой папке находятся больше одного файла *.doc. Можно ли создать программу, которая бы открывала файлы из папок X(i), копировала бы содержание в буфер, и вставляла бы текст в соотвествии с некоторыми правилами в соотвествующие структурные элементы документа (элементы структуры - это заголовки). Не знаю, насколько ясно получилось описать задачу, но надеюсь, что это даст оценить возможность ее решения с помощью VB.

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

Сообщение GSerg » 15.03.2006 (Ср) 12:41

Справка по VBA - отдельный компонент установки офиса. Да, по дефолту его нет. Поэтому я никогда не пользуюсь дефолтными установками.

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

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

Сообщение PAP » 15.03.2006 (Ср) 12:46

GSerg
У меня нет выбора по поводу установок.

А по второму вопросу буду тогда пытаться делать. Начну пока с теории вопроса, так что скоро опять появтся дурацкие вопросы :)

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

Сообщение PAP » 17.03.2006 (Пт) 12:10

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

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

Сообщение GSerg » 17.03.2006 (Пт) 12:38

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

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

Сообщение PAP » 17.03.2006 (Пт) 12:47

GSerg
Нет. Для этого макроса я создал свою кнопку. И кстати, если воспользоваться этой кнопкой (вордовской имею в виду) не напрямую (то есть вывести цветовую палитру маркировки), то все работает нормально после этого.

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

Сообщение GSerg » 17.03.2006 (Пт) 12:58

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

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

Сообщение PAP » 17.03.2006 (Пт) 13:04

GSerg
А что это значит? Я сделал эту кнопку в своей панельке (там где все мои кнопки макросов хранятся), через меню Castomize...
Как узнать ID?

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

Сообщение GSerg » 17.03.2006 (Пт) 13:13

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

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

Сообщение PAP » 17.03.2006 (Пт) 13:21

GSerg
Вошел в меню Customize, в окне категории выбрал Макросы, в окне Команды выбрал название своего макроса, перетащил его в свою панельку, потом через Modife Selection выбрал Default стиль кнопки, ну а потом выбрал другой рисунок и отредактировал его в соответствии со своими соображениями об эстетике :). Вот собственно и все...
Да и еще (мало ли, вдруг и это как-то влияет) - макрос я назвал Highlight

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

Сообщение GSerg » 17.03.2006 (Пт) 13:32

Гы гы.

Сделал просто макрос по имени Highlight, и он вызвался при нажатии на эту кнопку :?
Переименовал макрос. Нажал на кнопку - "Макрос не найден".
Нажал ещё раз - пошло работать нормально.

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

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

Сообщение PAP » 17.03.2006 (Пт) 13:39

GSerg
Да уж, забавно... Я тоже переименовал, теперь все нормально. Интересно, как еще нельзя называть макросы? :)

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

Сообщение alibek » 17.03.2006 (Пт) 13:40

Если нажать Alt+F8 и выбрать из списка источников "Команды Word", то там будет команда Highligh.
Видимо при конфликте имен приоритет отдается пользовательским макросам.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение GSerg » 17.03.2006 (Пт) 13:46

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

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

Сообщение PAP » 17.03.2006 (Пт) 15:19

Что-то долго не мог зайти в форум.
Ну что же, теперь-то я понял. Зато можно сделать вывод, полезный для начинающих "макроделов": Прежде чем писать макрос, проверь копирайт названия" :D
Спасибо за помощь в постижении таинств Ворда

Пред.

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

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

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

    TopList