Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Word VBA

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Открыть новую тему     Написать ответ в эту тему

exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
 
Обсуждаем вопросы только по Word VBA
(программирование макросов, скриптов, пользовательских функций и т.п.).
Приветствуются ссылки на ресурсы и справочную литературу по теме.
 
Вопросы по работе с MS Word, не относящиеся к программированию, задаем в теме Microsoft Word

 
Обратите внимание, этот топик для помощи в изучении и использовании VBA. Посему запросы типа "Напишите мне такой-то макрос, я VBA не знаю и знать не хочу" не приветствуются.
Древняя мудрость: "Накорми голодного рыбой и он погибнет, научи его ловить рыбу и ты спасешь его."(R)
 
Рекомендации:
Если у Вас есть проблема, не решаемая стандартными средствами Word (об этом можно уточнить здесь) или требующая автоматизации, попробуйте для начала записать макрос самим Word (на вкладке Разработчик - Запись Макросов). Подробнее здесь. В большинстве случаев получившийся код (Разработчик-Макросы-Макрос-Изменить или Разработчик-Visual Basic) Вас не удовлетворит, но подскажет, какие объекты-методы-свойства использовать.  
Другой Ваш помощник - Просмотр объектов (Object Browser). Ну и встроенная помощь (F1), естественно.
 
Если Вы в тупике, покажите Ваш код (или часть кода) здесь.  Если вылезает ошибка, цитируйте ее полностью. Если код слишком большой, используйте тeг [more].
Используйте отладчик - Breakpoints (F9), Watches (Shift-F9), Steps (F8 и др.) Сильно облегчает поиск ошибок.

 
Рекомендуется к прочтению:
  • Начало работы с VBA в Word 2010
  • Microsoft Visual Basic for Application. Осетрова И.С., Осипов Н. А. Учебное пособие (руководство по программированию на VBA в MS Office)  
  • Введение в VBA для приложений MS OFFICE
  • Word и его объекты. Лекция из курса «Основы офисного программирования и документы Word»
  • WinApi. Лекция из курса "Основы офисного программирования и язык VBA" (для продвинутых)
  • Справка по VBA
  • Microsoft Word Visual Basic Reference - руководство по VBA (eng.)
  • Справочник по Word VBA
  • Блог Александра Гуревича  - тематический блог: советы по работе с Word и Excel и прочие материалы
  • Форум по VBA, Excel и Word Макросы в Word -тематический форум, готовые решения
  • Список полезной литературы по Word и программированию на VBA
  • Подборка решений на VBA для Word  
     
     
  • Excel VBA все вопросы по Excel VBA туда
  • Access все вопросы по программированию в Access туда
  • Книжульки по VBA - книги по программированию с использованием VBA
     
    Конкретные вопросы/готовые решения:
  • функция возвращает список закладок в документ
     
    Перечень основных ColorIndex'ов из MSDN
     
    - стартовый вопрос топика...

    Смежные темы:
    Программы » Microsoft Office 2019 & 365 | 2016 | 2013 | 2010 | 2007 | 2003
    Программы » OneNote | Outlook 2013 & 2016 & 2019 | Outlook 2010 | Microsoft Mathematics & Math Solver
    Программы » Word FAQ | Excel FAQ | Access FAQ
    Прикладное программирование » Excel VBA | Access VBA  
    Андеграунд » Microsoft Office 2019 | 2016 | 2013 | 2010 | 2007 | 2003
    Андеграунд » OneNote | Visio | SharePoint Server | Project Server | Exchange Server
    Андеграунд » Надстройки (add-ins) и коммерческие макросы Excel
    Андеграунд » Самостоятельная сборка дистрибутивов Оffice 2007/2010/2013/2016 | MUI для Office 2007

  • Всего записей: 3298 | Зарегистр. 27-09-2001 | Отправлено: 03:05 01-06-2005 | Исправлено: ALeXkRU, 17:10 03-08-2021
    vitaly1



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Учебный курс "Программирование в Microsoft Office для пользователей"
    Книга по этому курсу


    ----------
    Топик по украинскому языку

    Всего записей: 5415 | Зарегистр. 28-08-2004 | Отправлено: 11:44 27-09-2007
    Serg1212

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, нужна книга по созданию макросов в Word. Подскажите - где взять.

    Всего записей: 31 | Зарегистр. 28-07-2006 | Отправлено: 10:12 03-10-2007
    vitaly1



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Serg1212
    Глянь ту, что постом выше. И еще здесь - http://forum.ru-board.com/topic.cgi?forum=93&bm=1&topic=0407#1

    Всего записей: 5415 | Зарегистр. 28-08-2004 | Отправлено: 10:47 04-10-2007
    popkov

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DavenL0StuS

    Цитата:
    Как дети чес слово, пароль VBA - когда ж это проблемой было?  

    А всё-таки, как разблокировать заблокированный проект VBA ("Project is unviewable")? Насколько я понимаю, пароль нетрудно подобрать с помощью  
    Office Password Recovery Мастер http://www.rixler.com/office_password_recovery_master.htm,
    но некоторые проекты, если ему верить, вообще не защищены паролем, а та же ситуация - открыть не удаётся... Что делать дальше?

    Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 04:53 09-10-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    popkov
    Цитата:
    А всё-таки, как разблокировать заблокированный проект VBA ("Project is unviewable")?
    ...
    но некоторые проекты, если ему верить, вообще не защищены паролем, а та же ситуация - открыть не удаётся... Что делать дальше?

    а скажите, запаковать и выложить пример такого файла можно?  
    я не специалист, но программ много - потыкаю, может какая и поможет...

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:53 09-10-2007
    popkov

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
    Вот, например, надстройка EndNote для Word:
    http://ifolder.ru/3657514
    Office Password Recovery Мастер утверждает, что пароля там нет. НО как просмотреть проект?

    Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 11:10 09-10-2007
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    popkov

    Цитата:
    Вот, например, надстройка EndNote для Word
    <...>
    НО как просмотреть проект?

    а что ты ожидаешь в нем увидеть? основная функциональность все равно обеспечивается библиотекой EndNote Cwyw.dll
    Вот, к примеру, задекларированные функции
    Код:
    Public Declare Sub ENFindCitations Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENGoToEndNote Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENFormatBibliographyDlg Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENInsertSelectedCitations Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENEditCitations Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENInsertNote Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENEditLibraryReferences Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENUnformatCitations Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENRemoveFieldCodes Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENExportTravelingLibrary Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENInsertFigure Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENFormatFigures Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENPreferences Lib "EndNote Cwyw.dll" ()
    Public Declare Sub ENHelp Lib "EndNote Cwyw.dll" ()



    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 23:14 09-10-2007
    popkov

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Troitsky

    Цитата:
    а что ты ожидаешь в нем увидеть?

    Я надеялся, что можно найти причину, по которой в 2003 офисе обновление полей цитат в тексте документа (если документ открыт в режиме "Разметка страницы") приводит к полной переразбивке документа на страницы после обновления каждого поля цитаты. Причём на первых порах у меня это в 2003 офисе не происходило, потом началось, и не прекращается. Думаю, что это свойство именно 2003 офиса, потому что в нём (но не в XP) наблюдается такое же поведение при печати в PDF с помощью плагина Adobe PDF for Word (Acrobat 7 или 8 - одно и то же). Результатом последнего, кстати, являются неправильные перекрёстные ссылки внутри документа (на сноски внизу страницы, которые оказыватся ошибочно пронумерованы сквозным образом через весь документ, а не на каждой странице начиная с 1). Переустановка офиса не помогла (2 раза переставлял с тех пор).
     
    Дело в том, что в написанном мной ранее макросе, выполняющем просто обновление всех полей внутри документа (и/или удаление кодов полей) такой глюк сейчас не наблюдается вовсе (а раньше наблюдался, только если прокрутить документ к середине в режиме "Разметка документа").
     
    Хотел выяснить, каким образом разработчики EndNote и Acrobat реализовали соответствующие функции и исправить по мере возможности, а то тормоза при вставке ссылки EndNote ужасно напрягают (они связаны с повторяющейся 1000 раз переразбивкой документа на страницы), а глюки плагина Acrobat для Word делают его бесполезным.
     

    Цитата:
    основная функциональность все равно обеспечивается библиотекой EndNote Cwyw.dll  

    Но всё-таки хотелось бы иметь возможность посмотреть коды этих всех надстроек. Интересно ещё, например, на MathType глянуть изнутри.

    Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 23:51 09-10-2007 | Исправлено: popkov, 23:52 09-10-2007
    popkov

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Оказалось, проблема решается до отвращения просто. Видимо, именно поэтому об этом нигде не пишут.
    Вначале надо отключить соответствующую надстройку (лучше путём физического перемещения файла на диске), а затем просто открыть файл надстройки в Word. - и "Project is unviewable" не возникает, вместо этого сообщения запрос пароля (если он есть).
    Спасибо Troitsky.

    Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 16:19 13-10-2007
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    popkov

    Цитата:
    Оказалось, проблема решается до отвращения просто.

    Однако, не стоит обольщаться. Как я уже говорил, функциональность надстроек, идущих в комплекте с какими либо программами, сводится только к использованию функций этих программ, сокрытых обычно в динамических библиотеках (dll)
    Примерами тому - надстройки от Lingvo, FineReader, ВААЛ и т.д.


    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 17:30 13-10-2007
    popkov

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Troitsky

    Цитата:
    Однако, не стоит обольщаться. Как я уже говорил, функциональность надстроек, идущих в комплекте с какими либо программами, сводится только к использованию функций этих программ, сокрытых обычно в динамических библиотеках (dll)  
    Примерами тому - надстройки от Lingvo, FineReader, ВААЛ и т.д.  

    С другой стороны, в некоторых случаях можно заменить вызов функции из внешней библиотеки на собственный VBA-код. Я, например, написал уже макрос удаления кодов полей EndNote, работающий гораздо лучше, чем функция Remove Field Codes самого EndNote. Правда, смысла встраивать его в надстройку особого не вижу. Проще его оставить в виде макроса.
     
    Интересно, а ведь функции, спрятанные в dll - тоже, вероятно, написаны на VB? Может, их как-то можно превратить в исходный код?

    Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 16:03 15-10-2007 | Исправлено: popkov, 16:04 15-10-2007
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    popkov

    Цитата:
    Интересно, а ведь функции, спрятанные в dll - тоже, вероятно, написаны на VB?

    Функции используют объектную модель VBA (Word VBA). А вот написана ли библиотека на VB?.. Оооочень сомневаюсь. Тут, к примеру, PEiD тебе в помощь.

    Цитата:
    Может, их как-то можно превратить в исходный код?
    Вопрос больше для Андеграунда.


    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 21:43 15-10-2007 | Исправлено: Troitsky, 21:52 15-10-2007
    RedPromo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    popkov
    Да не одним VBА живут DLL, а превратить в исходники да еще работающее достаточно тяжело, для каждого языка на котором написан dll есть свои программы.

    Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 00:27 16-10-2007
    baston



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    julliette
    Выложи пожалуйста код по обтеканию рисунка текстом.Спасибо.

    Всего записей: 39 | Зарегистр. 27-12-2005 | Отправлено: 13:33 09-11-2007
    32sasha



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    1, Есть word с таблицей, таблица не стабильная (некоторые ячейки объединены)  
    Как устроить цикл, чтобы не нарываться на несуществующие ячейки?
     
    2. B таблице есть автоматическая нумерация строк.
    Забираю информацию с ячейки только набранный текст и со знаками табуляции.
    Как мне получить нумерацию строк + текст и без знаков табуляции?
    strText1 = Selection.Tables(1).Cell(a, 1).Range.Text

    Всего записей: 67 | Зарегистр. 05-01-2006 | Отправлено: 17:41 21-11-2007
    shamman

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Мое почтение господа!
    Пишется софтинка для пакетной обработки файлов. Есть форма с ComboBox-ом, в котором юзер должен выбрать нужный макрос.
    Подскажите, пожалуйста, как получить этот самый список макросов, например, с Normal.dot?

    Всего записей: 634 | Зарегистр. 06-07-2002 | Отправлено: 01:38 25-11-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    shamman
    Ну вот Вам для начала, а дальше уж самостоятельно:

    Код:
     
    Public Sub NormalCodeModules()
        Dim pVB As VBIDE.VBProject
        Dim i As Long
         
        For i = 1 To Application.VBE.VBProjects.Count
            If Application.VBE.VBProjects(i).Name = "Normal" Then
                Set pVB = Application.VBE.VBProjects(i)
                Exit For
            End If
        Next i
        If Not (pVB Is Nothing) Then
            For i = 1 To pVB.VBComponents.Count
                Debug.Print pVB.VBComponents(i).Name
            Next i
        End If
    End Sub
     

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 05:59 25-11-2007
    shamman

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndVGri
    Спасибо! Собственно говоря – это и все, что мне было нужно.

    Всего записей: 634 | Зарегистр. 06-07-2002 | Отправлено: 17:35 25-11-2007
    TVeresk

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, подскажите, пожалуйста, как сделать, чтобы нижеследующий код начинал работать при загрузке нового документа, созданного на основе шаблона - меня интересует ComboBox, который, почему-то не сохраняет введенные значения после открытия заного файла. И еще, как установить какое-то значение ComboBox по умолчанию? Спасибо!

    Код:
     
    Private Sub ComboBox1_Change()
    With ComboBox1  'this loads the combo
        .AddItem "1"
        .AddItem "2"
        .AddItem "3"
        .AddItem "4"
    End With
    End Sub
     

    Всего записей: 9 | Зарегистр. 04-06-2007 | Отправлено: 12:19 27-11-2007 | Исправлено: TVeresk, 12:20 27-11-2007
    TVeresk

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Наверное, я не совсем понятно описала свою проблему, попробую пояснить подробнее.
    Я создала свой шаблон в Word с использованием Control Toolbox. И в этот шаблон я вставила элемент ComboBox, но его необходимо заполнить элементами, а как это сделать я толком не знаю . При двойном щелчке на  ComboBox я попадаю в Visual Basic и здесь вписала код, представленный выше (нашла в инете). Сохранилась. Проблема в том, что при нажатии на этот шаблон должен открываться новый документ, созданный на его основе, но в открывшемся документе нет списка: сам элемент ComboBox есть, а списка нет, то есть он почему-то не сохраняется в шаблоне. В инете, к сожалению, не нашла ничего. Буду очень признательна за помощь. Спасибо!

    Всего записей: 9 | Зарегистр. 04-06-2007 | Отправлено: 16:25 29-11-2007
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Word VBA


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru