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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Gena1971



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    angel1980
    Вставь в таблице строку сверху, а потом преобразуй в текст.
    Или вырежь всю таблицу, вставь абзац а после него верни таблицу. Возможно надо будет вырезать таблицу и плюс хоть один абзац после неё в этом случае. Я просто не помню как вырезание произойдёт если вся таблица выделена.
    ----------
    Только как это относится к VBA?

    Всего записей: 2520 | Зарегистр. 25-01-2005 | Отправлено: 18:32 05-12-2016 | Исправлено: Gena1971, 18:33 05-12-2016
    angel1980

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Gena1971
    Спасибо за ответ! Что-то подобное я и собирался сделать, когда совсем отчаялся найти "правильный" способ. Но решил, что, возможно, это у меня какое-то затмение, и быть такого не может чтобы для простой операции "вставить элемент" требовались костыли в виде добавления строк, их преобразования и т. п.
    На самом деле задача в том, чтобы найти в документе все сноски, находящиеся в таблицах, и вынести их над или под таблицу, оставив на старом месте номера текстом в верхнем регистре. И все шло хорошо, пока не наткнулся на невозможность вставить что-либо возле таблицы простой командой (это касательно вопроса, как это относится к VBA).

    Всего записей: 4 | Зарегистр. 15-06-2007 | Отправлено: 19:15 05-12-2016
    aequit

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    angel1980
    Sub tabltx()
    ActiveDocument.Tables(1).Select
    Selection.Collapse Direction:=wdCollapseEnd
    Selection.TypeText "И все шло хорошо, пока не наткнулся на " _
    & "невозможность вставить что-либо возле таблицы простой командой." & Chr(13)
    End Sub

    Всего записей: 181 | Зарегистр. 17-11-2005 | Отправлено: 19:39 15-01-2017
    aljabr

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    В MS WORD пытаюсь смастерить следующее.
    Нужно просто выделить (мышкой) словосочетание и нажать клав. сокращение, чтобы...
    Выделить словосочетание серым фоном + к словосочетанию добавляется примечание.

    Код:
     
    Sub Gray()
    '
    ' Gray  
    '
    '
    Options.DefaultHighlightColorIndex = wdGray25
    Selection.Range.HighlightColorIndex = wdGray25
    Selection.Collapse Direction:=wdCollapseEnd
    ActiveDocument.Comments.Add _
    Range:=Selection.Range, Text:="review this"
    End Sub
     

    Проблема в том что примечание добавляется только на последнее слово, а не на все выделенное (мышкой) словосочетание.
     
    PS
    В идеале было бы отлично если бы вместо review this можно мыло вставить имеющийся текст из буфера обмена.

    Всего записей: 404 | Зарегистр. 19-09-2009 | Отправлено: 10:50 22-07-2017 | Исправлено: aljabr, 13:21 22-07-2017
    svs123456789

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    нет ли у кого ссылки на скрипт,  который
    обходит все таблицы в документе и присваивает им свойство "выравнивать по содержимому" и повторять заголовки ?

    Всего записей: 2523 | Зарегистр. 10-04-2003 | Отправлено: 17:58 23-12-2017
    DenSyo

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

    Цитата:
    нет ли у кого ссылки на скрипт,  который  
    обходит все таблицы в документе и присваивает им свойство "выравнивать по содержимому" и повторять заголовки ?

     

    Код:
    For Each t In ActiveDocument.Tables
        t.Rows.First.HeadingFormat = wdToggle
        t.AutoFitBehavior wdAutoFitContent
    Next

    Всего записей: 127 | Зарегистр. 19-01-2008 | Отправлено: 09:16 25-12-2017
    DenSyo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    функция возвращает список закладок в документе. разделитель списка символ |

    Код:
    Function viewBookmarks(theDoc As Document) As String
        Dim s As String
        Dim iBook As Object
        s = ""
        For Each iBook In theDoc.Bookmarks
            s = s & iBook.Name & "|"
        Next
        If s = "" Then viewBookmarks = "" Else viewBookmarks = Left(s, Len(s) - 1)
    End Function
     
    Sub testBookmarks()
        MsgBox viewBookmarks(ThisDocument)
        MsgBox viewBookmarks(Documents("Документ1"))
    End Sub

    Всего записей: 127 | Зарегистр. 19-01-2008 | Отправлено: 05:00 05-02-2018
    Vsevolod



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

    Цитата:
    а что там в вордовском файле насовано? При открытии он пытается какие-то SQL-запросы выполнить...

     
    Обычное слияние из Книга1.
     

    Цитата:
     взять многостраничный файл и сохранить каждую его страницу в отдельный документ.  

    У меня всего 1 страница. Вот открой Письмо и в Рассылках - просмотр результатов можно просмотреть чего получилось. Но он выдаёт по 1 странице. А чтобы все получить, то надо
    Цитата:
    "Рассылки - Найти и объединить - изменить отдельные документы"
    и выбрать все
     
    Добавлено:
    И макрос можно применить, чтобы был правильный результат, только после "выбрать все"

    Всего записей: 2202 | Зарегистр. 13-06-2001 | Отправлено: 14:46 30-06-2018
    ALeXkRU



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    в продолжение разговора... начало там
     
    Vsevolod
    Цитата:
    У меня всего 1 страница

    ну так... и это - нормально   откуда ж оно всё возьмётся никто и не обещал ничего такого.. надо ж сочинять макрос по-серьёзному.
    Я то предложил простой вариант (чтобы ничего не нужно было программить)
     
     
     
    Добавлено:
    Vsevolod
     
    посидел-поковырялся...
    Что получилось:  - ссылка
     
    - открыть файл-шаблон  
    (изменил шаблончик: в слияние включаются только те записи из excel-таблицы, у которых есть поведение-прилежание;
    причём пустые фразы без данных не выводятся в результат)
    - выполнить макрос RecAndSplit (можно на него назначить кнопку)
    (описание есть в тексте макроса... ) который  
        - выполняет слияние с таблицей; сохраняет в общий файл рассылки  
        - результирующий файл рассылки делит на отдельные файлы
        - имена файлов - по имени адресата (все файлы в той же папке, из которой открыт файл-шаблон)
        - общий файл рассылки можно удалить
     
    Добавлено:
      оказывается, есть готовые решения  - даже с кнопкой

    Всего записей: 10261 | Зарегистр. 03-12-2003 | Отправлено: 19:46 30-06-2018 | Исправлено: ALeXkRU, 20:11 30-06-2018
    Открыть новую тему     Написать ответ в эту тему

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