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

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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Panzer82
    http://msgroups.net/microsoft.public.word.vba.general/reading-text-out-of-word-docs

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 04:56 25-02-2010 | Исправлено: dneprcomp, 05:00 25-02-2010
    onehomes

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Товарищи!
    word 2003 - 2010 подскажите код макроса, чтобы сменить порядок страниц с 1,2,3...  на любую другую по моему требованию

    Всего записей: 246 | Зарегистр. 17-06-2005 | Отправлено: 14:00 19-03-2010
    polk90



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    onehomes
    это решается стандартными средствами ворда. В 2003 не помню где находится но точно есть. В 2007 "Вставка->Номер страницы->Формат номеров->Начать с".

    Всего записей: 4656 | Зарегистр. 19-12-2002 | Отправлено: 01:57 21-03-2010
    tdp

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    А не подскажите, как можно вставить картинку в определенное место?
    Ситуация - ячейка таблицы, в ней текст. После текста нужно вставить картинку.
    Подсознательно понимаю, что нужно передать правильный Range в AddPicture. Но где взять этот правильный Range?
    Все мои попытки вставляют картинку ДО текста...
     
    Заранее спасибо.

    Всего записей: 23 | Зарегистр. 06-09-2006 | Отправлено: 18:35 27-03-2010 | Исправлено: tdp, 12:00 28-03-2010
    prestigo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вставляю текст из википедии
    (да, написанный руками википедиков)
     
    получаю  
     
    Татья́на Льво́вна Ще́пкина-Купе́рник
     
    вот эти вот ударения мне совершенно не нужны, но как их удалить из текста - не имею представления, ибо допустим chr("н") дает ровно то же самое, что и chr("́н") - 237.
     
    кто что скажит?  

    Всего записей: 314 | Зарегистр. 03-09-2006 | Отправлено: 17:48 05-04-2010
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    prestigo
    или я чего-то не понимаю, или одно из двух!
    Дык "Заменить"  
    что: ́  
    на что _(оставляем пустым)
    нажимаем "заменить всё"
    все ударения из текста удалены...

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 19:16 05-04-2010
    Wh1tebear_khv



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем доброго!
     
    Прошу помощи..
    сделал документ с макросом print107, запускай файл через бантик:

    Код:
    "c:\Program Files\Microsoft Office\Office10\WINWORD.EXE" /mPrint107 "d:\Work\Temp\print107.doc"

    макрос:

    Код:
    Sub print107()
        Documents.Open FileName:="D:\Work\Temp\105-107.TXT", Format:=wdOpenFormatEncodedText, Encoding:=866
        With ActiveDocument.Styles(wdStyleNormal).Font
            If .NameFarEast = .NameAscii Then
                .NameAscii = ""
            End If
            .NameFarEast = ""
        End With
        With ActiveDocument.PageSetup
            .Orientation = wdOrientLandscape
            .TopMargin = CentimetersToPoints(1.3)
            .BottomMargin = CentimetersToPoints(1.3)
            .LeftMargin = CentimetersToPoints(1.5)
            .RightMargin = CentimetersToPoints(1.5)
        End With
        Selection.InsertDateTime DateTimeFormat:="dd MMMM yyyy", _
        InsertAsField:=True
        Selection.WholeStory
        Selection.Font.Size = 8
        ActiveDocument.PrintOut
        ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges
        Application.Quit (0)
    End Sub

    и вроде все ок, НО если убрать Application.Quit то остается открытым вновь созданное окно ворда (типо новый документ), а в указанном варианте не отправляет документ на печать.. Видимо слишком быстро закрывается.
    В итоге надо чтоб и на печать успело отправить и закрыть все открытые в ходе работы (и после) макроса документы ворда
     
    и второй вопрос - как проще на аналогичном скрипте перед печатью поудалять конкретные строки (достаточно много, процентов 80 от всего документа).
     
    Благодарен кто не откажет в помощи..
    ps йа в макросах чайник ) камни не кидать

    Всего записей: 51 | Зарегистр. 26-02-2006 | Отправлено: 08:52 08-04-2010
    Wh1tebear_khv



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    так, по первому вопросу решил, воткнув 2х секундную паузу после команды на печать

    Код:
        Dim PauseTime As Single
        Dim Start As Single
        Dim Finish As Single
        Dim TotalTime As Single
        PauseTime = 2
        Start = Timer
        Do While Timer < Start + PauseTime
            DoEvents
        Loop
        Finish = Timer
        TotalTime = Finish - Start

     
    ps спасибо тому кто написал этот кусочек кода )
     
    погорячился.. не помогло (

    Всего записей: 51 | Зарегистр. 26-02-2006 | Отправлено: 18:52 10-04-2010 | Исправлено: Wh1tebear_khv, 18:20 13-04-2010
    Seryoga204



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ув.форумчане подскажите пожалуйста как реализовать? Есть таблица (4 колонки), надо выделить все строки в первой колонке которых есть слово "всего". Заранее спасибо.

    Всего записей: 251 | Зарегистр. 10-05-2009 | Отправлено: 00:58 22-04-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Необходимо брать данные из таблицы одного файла(есть возможность необязательно из таблицы, а создать объекты текстбокс) и заносить в определенное место другого файла, интересует:
    1) можно ли это как-то сделать без объектов типа текстбокс(т.е. ловить определенную позицию не по объекту во 2-ом файле)
    2)сделать все это НЕ на кнопку
    3)и вопрос: сначала надо открыть второй файл for Input(для чтения), потом другой(третий возможно создать) for Output(для записи) и заносить все в третий файл из второго + изменения?(не могу вспомнить )
     
    наглядный пример:
    заполняю в первом файле название организации и надо, чтобы во втором файле в тексте, в НУЖНОМ мне месте(я знаю где оно визуально, но не знаю как поймать программно) вписывалось название организации из первого файла.
     
    Заранее огромное спасибо!

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 21:52 26-04-2010
    murkovich



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

    Цитата:
    заполняю в первом файле название организации и надо, чтобы во втором файле в тексте, в НУЖНОМ мне месте(я знаю где оно визуально, но не знаю как поймать программно) вписывалось название организации из первого файла.

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

    Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 22:34 26-04-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как запоминать информацию из первого файла я нашел. У меня там таблица из 2 столбцов, думал сначала тупо текстбоксы делать, потом нашел как из таблицы данные брать. А вот что такое букмарки - не знаю . Подскажите пожалуйста где взять литературу со всеми операторами в ВБА. Есть возможность просто определенный текст заменять во втором файле, но переменная строковая выдерживает ведь только до 255 символов(?), а там текст на 7 страниц, надо в разных местах вставлять данные.

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 14:50 27-04-2010
    JekaKot



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, макрос (или программку) для быстрой замены текста в нескольких файлах и в названиях самих файлов (часто меняется маркировка выпускаемой документации, изменение одной буквы/цифры влечет за собой правки текста в куче файлов)
    И если в TotalCommander-е можно изменить наименования через "групповое переименование", то с текстами - финиш полный...

    Всего записей: 2697 | Зарегистр. 10-03-2006 | Отправлено: 21:08 27-04-2010
    shengjeng



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JekaKot
     
    Посмотрите на wordexpert.ru
    замена
    http://wordexpert.ru/page/makros-paketnoj-zameny-ot-aleksandra-vitera
    http://wordexpert.ru/page/poisk-i-zamena-teksta-makrosy-ot-marka-rozenberga

    Всего записей: 215 | Зарегистр. 25-04-2009 | Отправлено: 22:24 27-04-2010 | Исправлено: shengjeng, 22:25 27-04-2010
    JekaKot



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

    Всего записей: 2697 | Зарегистр. 10-03-2006 | Отправлено: 00:24 28-04-2010
    murkovich



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

    Цитата:
    А вот что такое букмарки - не знаю . Подскажите пожалуйста где взять литературу со всеми операторами в ВБА

     
    Букмарк - это типа метки в документе/шаблоне. Создавать можно через меню, а вставлять текст после букмарка можно, например, так:
    ActiveDocument.Bookmarks("имя букмарка").Range.InsertAfter "вставляемый текст"
     
    Погугли по "word bookmark vba"

    Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 02:42 28-04-2010
    Crazyblind

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


    Цитата:
    Букмарк - это типа метки в документе/шаблоне. Создавать можно через меню, а вставлять текст после букмарка можно, например, так:  
    ActiveDocument.Bookmarks("имя букмарка").Range.InsertAfter "вставляемый текст"  
     
    Погугли по "word bookmark vba"

     
    Спасибо огромное, очень помогли букмарки(закладки)!
     
    Появилось еще 2 вопроса:  
     
    1)как сделать нужный документ активным
    2)когда я вставляю за букмаркой текст из ячейки таблицы, после текста ставится энтер(похоже он берется от незаполненного места в ячейке), не знаю как от него избавиться. Пробовал через mid и trim, не помогает.

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 14:28 29-04-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mid все же помог, но в длине пришлось указать не len(name$)-1, а len(name$)-2
     
     
     
    Добавлено:
    Каким образом можно закрыть один документ, не закрывая другой?
     
    И существуют ли открытые коды, которые могут ФИО человека из именительного падежа кинуть в родительный?(Я так понимаю это очень сложно, т.к. некоторые фамилии даже не склоняются)

    Всего записей: 17 | Зарегистр. 20-05-2009 | Отправлено: 08:24 30-04-2010
    Crazyblind

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Осталось узнать как из html странички вытащить нужный мне текст ?  

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



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

    Цитата:
    но в длине пришлось указать не len(name$)-1, а len(name$)-2  

    Потому что перевод строки это на самом деле 2 символа, а не один - (Chr(13) + Chr(10))

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 01:36 08-05-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