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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пытаюсь задействовать функцию "Вставка элемента управления" - "поле со списком" (элемент ActiveX)
     
    При создании в Word данного элемента, запускается Visual Basic с Code следующего содержания:
     
    Private Sub ComboBox1_Change()
     
    End Sub
     
    Подскажите, плиз, какие команды нужно прописать?

    Всего записей: 71 | Зарегистр. 08-03-2007 | Отправлено: 22:58 01-04-2009
    anatolus

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Имею следующий код VBA ( цель этой функции создание имени для сохраняемых файлов по типу outputfile001, outputfile002 и т.п.):

    Код:
    Function NameOfOutputFile(ByVal n As Integer) As String
    ' добавляем нолики в имя файла
    'Dim name As String
    NameOfOutputFile = "outputfile"
     Select Case n
     Case n < 10
        NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "00" & Str(n)
     Case n < 100
        NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "0" & Str(n)
     Case Else
        NameOfOutputFile = OuputFilePlace & NameOfOutputFile & Str(n)
     End Select
    End Function

    Вопрос почему почему, скажем при n = 2 получается не "outputfile002", а "outputfile 2" (с пробелом и без ноликов) и как это исправить?

    Всего записей: 124 | Зарегистр. 01-10-2005 | Отправлено: 20:41 06-04-2009
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    anatolus
    такова особенность работы str(Number)
    либо используйте функцию Format, либо так:
    Код:
     Select Case n
     Case 1 To 9
        NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "00" & Trim(Str(n))
     Case 10 To 99
        NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "0" & Trim(Str(n))
     Case Else
        NameOfOutputFile = OuputFilePlace & NameOfOutputFile & Trim(Str(n))
     End Select

     
    исправил - вы же case неверно оформили!!! читайте справку по VBA!

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 23:00 06-04-2009 | Исправлено: SERGE_BLIZNUK, 23:07 06-04-2009
    ands555

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пытаюсь задействовать функцию "Вставка элемента управления" - "поле со списком" (элемент ActiveX)  
     
    При создании в Word данного элемента, запускается Visual Basic с Code следующего содержания:  
     
    Private Sub ComboBox1_Change()  
     
    End Sub  
     
    Подскажите, плиз, какие команды нужно прописать?

    Всего записей: 71 | Зарегистр. 08-03-2007 | Отправлено: 23:39 06-04-2009
    suomifinland



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята..., помогите, шеф принес кучу Вордовских файлов, более 1000 *.doc, и "попросил"            к понедельнику переконвертировать их в html странички, я так поняла для эл.книги, перекопала весь любимый форум, и... не нашла ответа, как желательно ПАКЕТНО, переконвертировать все это дело..., БЫТЬ может у кого-либо есть подходящий скрипт для этого дела, понимаете на носу праздник, а шефу не почем... Помогите ребята!      
    Извините за сумбурность, простоя сама в этом деле, деле скриптов,  невеликая дока...

    Всего записей: 5257 | Зарегистр. 16-04-2006 | Отправлено: 15:55 17-04-2009
    filemoto



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    suomifinland
    ну так в ворде сохранить как... и выбери *.html
    можешь макрос записать для этого дела

    Всего записей: 132 | Зарегистр. 08-04-2006 | Отправлено: 16:13 17-04-2009
    suomifinland



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да нет, Вы не так поняли, мне необходимо ПАКЕТНО, переконвертировать более 1000 файлов, т.е крайне желательна автоматизация работы, и это мне подозреваю придется делать каждый день... представляете..
     
    Добавлено:
    Эх... если бы, я была сильна, мальчики, в Ваших макросах..., да вот не дано... поэтому к Вам и обратилась...    

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

    Всего записей: 5257 | Зарегистр. 16-04-2006 | Отправлено: 16:18 17-04-2009
    TGR3

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у меня тут вопрос возник по макросам, может поможете чем сможете
    меня попросили посмотреть почему макрос не правильно работает, так вот когда в ворде запускаешь макрос, он что то делает, а потом выдает вот такой текст
    СРОЧНЫЙ НАБОР</strong><br>
    СРОЧНЫЙ НАБОР </strong><br>
    Текст здесь идет бла, бла. </strong><br>
    </strong><br>
    сам макрос прикреплю ниже
    там же фаилик word, который надо прогнать макросом, а потом в Adobe InDesign CS вставить и отправить на полиграфию... мне кажеться там проблема в макросе
    там в одном месте идет
    [code]Selection.Find.Execute Replace:=wdReplaceAll
       Selection.Find.Execute Replace:=wdReplaceAll
       With Selection.Find
           .Text = "^p"
           .Replacement.Text = "</strong><br>^p"
           .Forward = True
           .Wrap = wdFindAsk
           .Format = False
           .MatchCase = False
           .MatchWholeWord = False
           .MatchWildcards = False
           .MatchSoundsLike = False
           .MatchAllWordForms = False
       End With[/code]
    здесь кажеться одна ошибка, но я думаю там их много в вордовском фаиле в самом винзу есть объява с кодами <tstart>Наполнитель баллонов г.Наб.Челны
    ГОУ "Учебно-курсовой комбинат "Строитель".  <tend>
    вот  <tstart>text<tend>(техт в этих кодах должен быть в рамке) на выходе после макроса этих кодов нету( в макросе я видел, то что они заменяются на пустоту то есть замена на "", правильно это или нет, я не знаю...
    вордоский фаил создается из одной программы в формат rtf у меня тут тоже вопрос есть разница какой формат rtf ili doc? просто когда идет импорт в Adobe InDesign CS то с rtf то на выходе получаються корябзике, а если word то все хорошо со шрифтами.. и еще там по моему много лишнего кода... сеичас пока читаю книжку VBA.i.programmirovanie.v.MSOffice.dlya.polzovateley.2006 но может кто быстрее найдет ошибки и исправить их если не тяжело конечно... просто нужно срочно, а я тока вспоминаю основы которые мне дали в институте давно давно это был конечно...
    http://depositfiles.com/files/xmkuksuxc
    заранее все большое спасибо...

    Всего записей: 165 | Зарегистр. 16-10-2008 | Отправлено: 13:43 06-05-2009
    GameKowal

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди, не поможете?
    Есть хороший набор макросов WOPR 2003, который при установке на WORD 2003 выдаёт ошибку "Требуемый класс отсутствует Class Factory.Out of memory".
     
    Образ диска с установочным файлом находится тут, Установщик программы запускается с жёсткого диска только при наличии смонтированного в виртуальном устройстве данного образа. Прожигать не обязательно.
    В этом наборе макросов очень много полезных фич, рассчитываю, что местные гуру мне помогут. Уверен,что дело в каком- нибудь пустячке.Спасибо!
     
     

    Всего записей: 2066 | Зарегистр. 23-11-2004 | Отправлено: 19:10 18-07-2009 | Исправлено: GameKowal, 11:59 19-07-2009
    unse



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет,
     
    Есть такая проблема:
     
    Надо чтобы Вордовский документ можно было печатать двумя способами:
     
    1. Собственно так, как он выглядит изначально. Со всеми хедерами и футерами.
    2. Без хедеров и футеров.
     
    С 1 проблем нету )) Основная проблема в том что я никак не могу найти, как распечатать без всего этого добра, не удаляя их. Надо чтобы после печати документ оставался в изначальном виде и можно было продолжать работать.
     
    Можно как-то сделать чтобы просто хедеры и футеры не печатались? или как сделать чтобы после печати делалось UNDO и документ восстанавливался?
     
    Заранее спасибо.

    Всего записей: 62 | Зарегистр. 28-02-2005 | Отправлено: 00:26 24-08-2009 | Исправлено: unse, 00:30 24-08-2009
    GregoryPek



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    просьба знатокам накидать макрос к WORD (похожего здесь не нашел):
     
    -имеем документы WORD, в которых есть пустые строки, количество их разное от 1 до 10-20 подряд
     
    надо чтобы все пустые строки (подряд более одной) удалялись макросом
     
    ну чтобы к примеру из пяти пустых строк подряд осталась одна, из двух тоже одна и тд.
     

    Всего записей: 402 | Зарегистр. 31-10-2004 | Отправлено: 15:46 26-08-2009 | Исправлено: GregoryPek, 15:48 26-08-2009
    murkovich



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GregoryPek
    А чем плох способ в лоб - заменять две пустые строки на одну, и так до тех пор, пока есть что заменять?

    Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 16:54 26-08-2009
    vitaly1



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    При этом менять на 2 абзаца (^p^p), если нужно чтобы 1 пустая строка все-таки осталась.

    Всего записей: 5415 | Зарегистр. 28-08-2004 | Отправлено: 17:11 26-08-2009
    GregoryPek



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    murkovich
    vitaly1
    если б это был единичный случай то конечно вручную
     
    а если много и часто то конечно лучше макрос, тем более что пустые строки перемешены и в виде (^p) и в виде (^l)

    Всего записей: 402 | Зарегистр. 31-10-2004 | Отправлено: 17:51 26-08-2009 | Исправлено: GregoryPek, 17:52 26-08-2009
    burat1no666

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

    Всего записей: 36 | Зарегистр. 05-09-2009 | Отправлено: 16:12 05-09-2009
    murkovich



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GregoryPek
    Всё равно не понятно, где проблема. Ведь всё, что можно вручную, можно и макро рекордером записать, и потом в цикл поместить.
     
    Единственное, нужно решить, какие замены наиболее безопасны для сохранения форматизации документа. Т.е., в лоб было бы сначала все ^l переделать в ^p, и после этого все ^p^p^p в ^p^p. Если это слишком брутально, то нужен более эластичный подход.

    Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 11:31 06-09-2009
    GregoryPek



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

    Цитата:
    нужен более эластичный подход.
    вот я это и хотел
     
    пришлось сделать
    Цитата:
    слишком брутально
    но вроде работает
     

    Всего записей: 402 | Зарегистр. 31-10-2004 | Отправлено: 12:22 06-09-2009
    kronic

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

    Код:
    Sub Печать_Протоколов()
    '
    ' Печать_Протоколов Макрос
    '
    '
        With ActiveDocument.MailMerge
            .Destination = wdSendToPrinter
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=False
        End With
    End Sub

     
    Проблема в том что макрос печатает сразу 2 листа, а мне надо напечатать только первый лист
    как поменять?

    Всего записей: 168 | Зарегистр. 01-11-2006 | Отправлено: 10:53 09-10-2009 | Исправлено: kronic, 10:53 09-10-2009
    V4mp



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прошу помощи!
    Есть шаблон word 2007 с макросами.
    КАК сделать, чтобы при создании нового документа на основании этого шаблона все макросы ИЗ шаблона копировались В новый документ при его сохранении???

    Всего записей: 65 | Зарегистр. 04-12-2008 | Отправлено: 22:37 10-10-2009
    pribush

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

    Всего записей: 3 | Зарегистр. 14-12-2009 | Отправлено: 22:39 14-12-2009
    Открыть новую тему     Написать ответ в эту тему

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