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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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  
     
     
    Родственные топики:
  • Вопросы по работе с Microsoft Word - часть 1, часть 2
  • Технические проблемы с Microsoft® Office® 2016 | Microsoft® Office® 2013 | Microsoft® Office® 2010 | Microsoft® Office® 2007 | Microsoft® Office® 2003
     
     
  • Excel VBA все вопросы по Excel VBA туда
  • Access все вопросы по программированию в Access туда
  • Книжульки по VBA - книги по программированию с использованием VBA
     
    Конкретные вопросы/готовые решения:
  • функция возвращает список закладок в документ
     
    Перечень основных ColorIndex'ов из MSDN
     
    - стартовый вопрос топика...

  • Всего записей: 2950 | Зарегистр. 27-09-2001 | Отправлено: 03:05 01-06-2005 | Исправлено: ALeXkRU, 11:40 02-07-2018
    FreemanRU



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Можно ли как-то сделать так, чтобы при открытии документа если есть текст со шрифтом Time New Roman он заменялся на Arial?


    ----------
    Если не получается с первого раза - прочти инструкцию. (с)
    "Откуда нам знать, что такое война, если мы не знаем мира..."(с)
    Записки

    Всего записей: 3764 | Зарегистр. 16-07-2004 | Отправлено: 19:11 19-04-2006
    Mbus



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    Чесно я эти варианты не проверила, потомучто по другому сделала, что-то типа твоего каскада и получилось. Одним словом прибегла к использованию формы с возможностью выбора, а не подменю.

    Всего записей: 655 | Зарегистр. 04-06-2003 | Отправлено: 14:00 20-04-2006
    ustas25

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    возникла следующая проблемка:  
    приходит файлик с програмой передач. ночной повтор выделен красным. его нужно скопировать в конец страницы. может кто подкажеткак определить начало и конец блока с измененым цветом чтобы его вирезать и вставить в другое место документа

    Всего записей: 7 | Зарегистр. 27-04-2006 | Отправлено: 16:18 03-05-2006
    BigJB



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Существует следующая задача:
    есть файл .doc содержащий тест . необходимо в нем произвести поиск и замену групп цифр на слова. Есть таблица в Excele которая содержит искомые группы цифр и слова на которые необходимо произвести замену.
     
    Я себе представляю решение задачи последовательным перебором искомых значений из таблицы. Но вот не представляю как это реализовать в жизнь.  
     
    Видимо задача элементарная. Но у меня к сожалению отсутствует опыт для ее решения.
     
    Подскажите плз решение. Зарание благодарен.

    Всего записей: 3 | Зарегистр. 15-04-2006 | Отправлено: 04:40 13-05-2006
    vane4ik

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди помогите. Не могу решить следующую задачу:  
    1) Имеется доковский файл в котором написаны различние методички, книги и т.д.  
    2)Также имеется документ эксель в котором эти методички и книги перечисляются, например: "Работа с Word" Пупкин Г.Г., Петров К.К.  
    3)При написании новой методички мне нужно например ссылатся на другие методички и книги ( из пункта 1) ).Необходимо создать макрос который будет выводить форму,на которой я буду выбирать необходимые методички и книги и затем при нажатии на кнопку на форме выбранные мной методички будут добавляться в документ в виде ссылок на методички в докомском файле из 1)  
     
    Что-то наподобии перекрестных ссылок




    предупреждение за дублирование поста в отдельной теме.

    Всего записей: 2 | Зарегистр. 16-05-2006 | Отправлено: 14:53 16-05-2006 | Исправлено: ShIvADeSt, 01:44 17-05-2006
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    BigJB
    Основные идеи тут
    Если что не ясно - спрашивай.

    Всего записей: 794 | Зарегистр. 13-12-2003 | Отправлено: 12:40 17-05-2006
    BigJB



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    Спасибо!
    Довольно доходчиво и понятно. По пробую переделать под свою специфику. Думаю что все получится, но если что, то еще чуть чуть по мучаю

    Всего записей: 3 | Зарегистр. 15-04-2006 | Отправлено: 23:56 18-05-2006
    BigJB



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    Спасибо применил, все работает. добавил цыкл, все супер.
    Появился новый вопрос как сделать так, чтобы заменяемый текст имел отличное от основного текста форматирование, цвет, шрифт, размер.
     
    По пробовал проделать при помощи Поиск и замена. Записал макрос, а в нем ни фига ни каких параметров не отражается.  
     
    Что делать или где прочитать?
     
    Заранее благодарен

    Всего записей: 3 | Зарегистр. 15-04-2006 | Отправлено: 19:35 25-05-2006
    TashaA



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

    Всего записей: 6 | Зарегистр. 30-05-2006 | Отправлено: 12:19 30-05-2006
    MrZeRo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BigJB
    Делать в цикле замену с wdReplaceOne и в момент, пока заменяемый текст выделен, менять шрифт, цвет и т.д.

    ----------
    ... не это главное ...

    Всего записей: 828 | Зарегистр. 30-01-2002 | Отправлено: 15:45 30-05-2006
    KiRyX



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Как макросом все формулы и числа в большом документе MS Word заменить вот так:  
    PV=(m/M)RT [обычный текст] -> PV=(m/M)RT [объект Microsoft Equation 3.0]  
     
    Признак формулы - знаки арифметических действий и только латинские символы и цифры.

    Всего записей: 199 | Зарегистр. 17-11-2003 | Отправлено: 13:07 22-06-2006
    Ivan33



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    граждане, у кого есть опыт решения такой проблемы.
     
    в ворде есть вложенные таблицы эксель, как их вытащить в эксель обратно в одну книгу на разные листы?
     
    Добавлено:
    есть кусок кода:
     
    Private lngI As Long
     
    Public Sub FromWordToExcel()
        Dim sh As Word.InlineShape
        Dim xlApp As Excel.Application
        Dim xlWb As Excel.Workbook
        Dim xlWbNew As Excel.Workbook
        Dim xlWs As Excel.Worksheet
        Dim strCaption As String
     
        Set xlApp = New Excel.Application
        xlApp.Visible = True
         
        Set xlWbNew = xlApp.Workbooks.Add
     
        For Each sh In ActiveDocument.InlineShapes
            If sh.OLEFormat.ProgID = "Excel.Sheet.8" Then
                sh.OLEFormat.ActivateAs ClassType:="Excel.Sheet.8"
                sh.OLEFormat.Activate
                 
                Set xlWb = sh.OLEFormat.Object
                 
                strCaption = fnFindField(lngI)
                 
                Set xlWs = xlWbNew.Worksheets.Add
                 
                xlWs.Name = strCaption
                xlWb.Worksheets(1).UsedRange.Copy xlWs.Range("A1")
                 
                lngI = lngI + 1
            End If
        Next sh
    End Sub
     
    Public Function fnFindField(lngI As Long) As String
        Dim intPos As Integer
        Dim fld As Word.Field
         
        Do
            lngI = lngI + 1
            intPos = InStr(ActiveDocument.Fields(lngI).Code, "SEQ")
        Loop Until intPos > 0
         
        Set fld = ActiveDocument.Fields(lngI)
         
        fnFindField = Mid(Trim(fld.Code), 4, _
          Len(Trim(fld.Code)) - InStr(Trim(fld.Code), "\") - 4) & " " & fld.Result
    End Function
     
    Выдает ошибку в строке:
     
    If sh.OLEFormat.ProgID = "Excel.Sheet.8" Then и
     
    xlWb.Worksheets(1).UsedRange.Copy xlWs.Range("A1")
     
    в документе лежит много таких вложенных таблиц, вылетает на 8 таблице
     
     
     
     
     
    Добавлено:
    есть идеи?

    Всего записей: 418 | Зарегистр. 01-05-2004 | Отправлено: 16:54 13-07-2006
    Kudryashov_Dmitriy

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    собственно такая проблема:
     
    имеется XML-документ Word2003, доступный собственно из word (т.е. не с диска, а через объектную модель ворда). Хочется получить полное деревое XMLины, однако ворд, насколько я понимаю, обрабатывает всё что относится к присоединённой схеме отдельно. Т.е. я имею доступ только к нодам из моего пространства имён. Как жа получить из остальных пространиств имен (w, o, ...), которые определяют в т.ч. оформление текста и т.д.
     
    (http://forum.ru-board.com/topic.cgi?forum=33&topic=7091)

    Всего записей: 2 | Зарегистр. 11-07-2006 | Отправлено: 18:30 17-07-2006
    Archimed



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Знатоки помогите решить проблему. Необходимо в открытом документе Word снизу на последнем листе программно создать две кнопки "Назад" и "Далее". После заполнения документа из макроса, нужно вернуться назад и исправить исходные данные, если есть ошибки, или продолжить далее.

    Всего записей: 733 | Зарегистр. 25-10-2002 | Отправлено: 22:21 20-07-2006
    legven



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я может быть ошибся с топиком, но мне кажется, что это наиболее близкая тема. Суть вопроса: очень хочется сделать скроллинг OLE-объкта(в моем случае это word) на форме в Access. Без скроллинга делать умею, но нужен именно скроллинг! Очень нужно и как можно стрее
    Заранее благодарен.

    Всего записей: 83 | Зарегистр. 22-12-2005 | Отправлено: 23:32 23-07-2006 | Исправлено: legven, 23:32 23-07-2006
    RedPromo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Archimed
    Ну я бы создал свою панель через VBA и наней две кнопки с процедурами а вних код.
    А что значит назад это отменить все изминения все сделаные макросом или разрешить просто пользователю править данные?
     

    Цитата:
     
    Dim customBar As CommandBar
    Dim newButton As CommandBarButton
    Set customBar = CommandBars.Add("Custom")
    Set newButton = customBar.Controls _
        .Add(msoControlButton, CommandBars("Edit") _
        .Controls("Cut").Id)
    Set newButton = customBar.Controls _
        .Add(msoControlButton, CommandBars("Edit") _
        .Controls("Copy").Id)
    Set newButton = customBar.Controls _
        .Add(msoControlButton, CommandBars("Edit") _
        .Controls("Paste").Id)
    customBar.Visible = True
     


    Всего записей: 557 | Зарегистр. 05-04-2006 | Отправлено: 11:03 25-07-2006
    julliette



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста!
    Суть проблемы: в файл с текстом вставляются картинки, распознанные в файнридере и перенесенные в другой вордовский файл. По умолчанию они вставляются с левого края положение "в тексте" расстояние до текста слева-справа 0,32. Нужно положение "сверху и снизу" выравнивание центр расстояние до текста слева-справа 0.  
    Хочу создать макрос, который при нажатии горячих клавиш автоматически вставляет объект с нужным форматирование или же применяет сразу нужное форматирование к только что вставленному объекту. Пробовала через макрорекордер, но в режиме записи не могу даже выделить вставленный объект - мышь не выделяет объект, если начинаю запись при уже выделенном вставленном объекте, то выходя в Формат/Рисунок/Положение - кнопка "Дополнительно" и раздел обтекание неактивны. Причем для ранее вставленных и отформатированных рисунков эти опции активны.  
    Может кто-то подскажет как обратится из VBA к только что вставленному объекту?  

    Всего записей: 112 | Зарегистр. 19-12-2004 | Отправлено: 11:04 30-07-2006 | Исправлено: julliette, 11:06 30-07-2006
    Archimed



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RedPromo
    Спасибо эту проблему я решил. Сейчас возникла другая. Не работает команда MkDir "D:Dokum". Папка не создается. Пробовал и в 2000 офисе и 2003. Может виноват Windows XP SP2, потому что на работе в Win2000 и офисе 2000 все прекрасно создается. Прошу, ради эксперимента, у кого ХР и SP2 попробовать и сообщить результат. Если сработает выложите код сюда, я у себя опробую. Я уже грешу на все. Может какая библиотека не подключена для работы с NTFS XP?
    Вопрос снят. На одном из форумов нашел. что это проделки антивируса Касперского. Снял его защиту и все сработало. Только вот как теперь этого гада обойти?

    Всего записей: 733 | Зарегистр. 25-10-2002 | Отправлено: 18:08 30-07-2006 | Исправлено: Archimed, 18:52 30-07-2006
    julliette



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Проблема решена, если кому-то интересно могу выложить код

    Всего записей: 112 | Зарегистр. 19-12-2004 | Отправлено: 18:41 30-07-2006
    Archimed



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как из Worda получить доступ к файлу Exel и забрать содержимое нужных ячеек. Заранее спасибо.

    Всего записей: 733 | Зарегистр. 25-10-2002 | Отправлено: 07:55 11-08-2006
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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

    Имя:
    Пароль:
    Сообщение

    Для вставки имени, кликните на нем.

    Опции сообщенияДобавить свою подпись
    Подписаться на получение ответов по e-mail
    Добавить тему в личные закладки
    Разрешить смайлики?
    Запретить коды


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2018

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru