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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте уважаемые форумчане!
    Подскажите пожалуйста как должен выглядеть код макроса, который сможет реализовать следующее (Word 2003):
    1. Поля страницы должны быть изменены на – верхнее (2 см), левое (2,5 см), правое (1 см), нижнее (6 см).
    2. На данную страницы вставляется автотекст.
    Автотекст представляет собой рамку для листов формата А4 (ГОСТ 2.104, форма 1). Данный автотекст, по моему соображению, должен быть вставлен в колонтитул, т.к. при заполнении одного листа данными, они должны быть продлены на последующих с тем же оформлением.
    3. При вставке автотекста должна быть автоматически вставлена пустая страница.

    Всего записей: 655 | Зарегистр. 27-01-2008 | Отправлено: 19:31 09-05-2010 | Исправлено: Alexey87, 16:03 16-05-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Взял из html файла все, что нужно, всем спасибо, все работает.
     
    Хотелось бы узнать маленький нюанс как открывать файл из папки, которая непостоянна, но лежит второй файл вместе с первым в одной папке.
     
    Я использовал Documents.open filename=".\имя файла"
     
    Не знаю почему вспомнил про эту точку, но он открывает файл из папки, которая открыта похоже. В моей задаче это не слишком удобно, но можно и так.
     
    Можно ли какую-то папку сделать активной(имя папки меняется), или как-то можно указать в ЭТУ же папку и далее название открываемого файла?

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 10:28 13-05-2010
    murkovich



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

    Цитата:
    Можно ли какую-то папку сделать активной(имя папки меняется), или как-то можно указать в ЭТУ же папку и далее название открываемого файла?

     
    Установить текущую папку Тебе поможет API-функция SetCurrentDirectory (и соотв. GetCurrentDirectory, чтобы узнать ее).

    Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 17:58 13-05-2010 | Исправлено: murkovich, 17:59 13-05-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не смог разобраться с этими двумя API-функциями, вроде и код на VB нашел, но ничего не получается
     
    Можно ли еще окрыть эксель файл через ворд для изменений?
     
    Dim kont as excel.workbook
     
    Set kont = getobject("С:\Контакты.xls")
     
    Не получается
     
    Начинает ругаться на объявление, хотя в книжках говорят такой код должен подходить, может из-за того что я пишу в Модуле, а не в ThisDocument?

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 11:07 17-05-2010
    Alexey87

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если есть у кого-то возможность подскажите пожалуйста по моему вопросу. Нужно решить в кратчайшие сроки.

    Всего записей: 655 | Зарегистр. 27-01-2008 | Отправлено: 16:11 17-05-2010
    Hugo121

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

    Цитата:
    Dim kont as excel.workbook  
     
    Set kont = getobject("С:\Контакты.xls")  

     
    Подключите в референсах библиотеку Экселя, и заработает.
     
    Alexey87, тут я пас...
     

    Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 16:36 18-05-2010 | Исправлено: Hugo121, 16:38 18-05-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hugo121
     
    Благодарю. Завтра проверю, отпишусь.

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 21:54 18-05-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hugo121
     
    Еще раз спасибо, помогло

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 17:10 19-05-2010
    zzzoommm

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    доброго времяни суток. подскажите пожалуйста. в институте задали написать макрос в MS word позволяющий выделенный текст делать курсивом, жирным и подчеркнутым, в зависимости от введенной буквы (К,Ч,Ж). тоесть я так понял надо создать форму в котроую вводишь текст и при нажатии кнопки происходит изменение этих букв. буду благодарен за помощь.

    Всего записей: 1 | Зарегистр. 14-05-2010 | Отправлено: 09:30 20-05-2010
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли в ворде сделать такое:
     
    в одной папке лежат файлы ворд (doc, не docx)
    каждому файлу (точнее, для каждого файла в папке автоматически - не открывая каждый файл вручную) заменить свойства/метаинформацию документа: автора, организацию, база гиперссылки

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 19:04 04-06-2010
    vaulin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Никто не подскажет, как вернуть каретку на один символ назад?
     
    Добавлено:
    А, всё, разобрался. Это делается с помощью Selection.Move(Unit:=wdCharacter, Count:=-1):

    Код:
    wUnits = Selection.Move(Unit:=wdCharacter, Count:=-1)

    здесь wdCharacter -- константа типа WdUnits, говорящая о том, что нужно двигаться посимвольно, а Count говорит на сколько единиц и куда. В данном случае на один символ назад. Короче, всё это из помощи по Selection.Move Method

    Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 11:24 02-07-2010
    suomifinland



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, Вы как то меня здорово выручили   , можно еще раз попросить Вас о помощи...  Имеется папка, в ней около 100 файлов с расширением *.doc и *.rtf, но больше в *.doc, так вот моя проблема, каким образом ОДНОВРЕМЕННО удалить одну и туже фразу, к примеру  "внеклассная работа в школе" или какую либо другую "..............."  фразы естественно без кавычек, я так понимаю что необходим макрос..., но я сплошная неуч, в этом вопросе...     Помоги коллективный РАЗУМ!  

    ----------
    Мы на горе всем буржуям, мировой пожар раздуем... А.Блок.

    Всего записей: 5257 | Зарегистр. 16-04-2006 | Отправлено: 10:13 03-10-2010
    JekaKot



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    suomifinland
    Попробуй это
    Там, правда, поиск и замена, но что помешает также и слова удалять... Если что, могу залить, что осталось у меня...

    Всего записей: 2697 | Зарегистр. 10-03-2006 | Отправлено: 11:37 03-10-2010
    suomifinland



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня на ноутбуке Word 2007, а на домашнем Word 2010, но могу пользоваться на работе и 2003, а  макрос к ним, подойдет, Уважаемый JekaKot ??? Начала качать, у меня огран. интернет, очень медленный...

    ----------
    Мы на горе всем буржуям, мировой пожар раздуем... А.Блок.

    Всего записей: 5257 | Зарегистр. 16-04-2006 | Отправлено: 11:51 03-10-2010
    JekaKot



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VBA, насколько я себе представляю, практически одинаковый для 2003/2007/2010 - не должно быть проблем...
    Знаю точно - на 2007 проблем нет (сам пользуюсь иногда на работе)
    Чтобы не мучилась - вот все, что есть у меня - Офис.rar

    Всего записей: 2697 | Зарегистр. 10-03-2006 | Отправлено: 15:23 03-10-2010
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как осуществить переход курсора на следующий лист в документе? Например, печатается часть текста на одном листе, затем необходимо напечатать другую часть на следующем листе. Как сделать этот переход?

    Всего записей: 3265 | Зарегистр. 30-05-2007 | Отправлено: 15:08 06-10-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    вставить разрыв страницы

    Код:
    Selection.InsertBreak Type:=wdPageBreak

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 16:57 06-10-2010
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
    Некорректно работает почему-то:

    Код:
    ActiveDocument.Content.InsertAfter("wredfrrdst")
    ActiveDocument.Content.InsertAfter("wredfrrdst")
    ActiveDocument.Content.InsertBreak(7)
    ActiveDocument.Content.InsertAfter("fswsd")
    ActiveDocument.Content.InsertBreak(7)
    ActiveDocument.Content.InsertAfter("wredfrrdst")
    ActiveDocument.Content.InsertBreak(7)

    Всего записей: 3265 | Зарегистр. 30-05-2007 | Отправлено: 17:59 06-10-2010
    smirnvlad

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

    Код:
     
    Set myRange = ActiveDocument.Content
    myRange.InsertAfter ("wredfrrdst")
    myRange.InsertAfter ("wredfrrdst")
    myRange.Collapse Direction:=wdCollapseEnd
    myRange.InsertBreak (wdPageBreak)
    myRange.InsertAfter ("fswsd")
    myRange.Collapse Direction:=wdCollapseEnd
    myRange.InsertBreak (wdPageBreak)
    myRange.InsertAfter ("wredfrrdst")
    myRange.Collapse Direction:=wdCollapseEnd
    myRange.InsertBreak (wdPageBreak)
     

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 19:00 06-10-2010
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad -- это работает. Спасибо.

    Всего записей: 3265 | Зарегистр. 30-05-2007 | Отправлено: 20:28 06-10-2010
    Открыть новую тему     Написать ответ в эту тему

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