Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2013, 10:54   #1
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию замена стиля "Обычный"

Хотелось бы иметь макрос, заменяющий в чужом документе стиль "Обычный" на свой обычный стиль "Обычный".
Через организатор много телодвижений треба, хочется одним кликом (этот форум разлагающе действует на мое природное трудолюбие )
caute вне форума Ответить с цитированием
Старый 12.01.2013, 11:10   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

С помощью макрорекордера получил код:
Код:
Sub Макрос2()
    
    Application.OrganizerCopy Source:= _
        "C:\Users\User\AppData\Roaming\Microsoft\Шаблоны\Normal.dotm", _
        Destination:="C:\Users\User\Desktop\Doc1.docx", Name:="Обычный", Object:= _
        wdOrganizerObjectStyles
        
End Sub
Скрипт вне форума Ответить с цитированием
Старый 12.01.2013, 11:11   #3
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
caute: этот форум разлагающе действует на мое природное трудолюбие
тратьте ваше трудолюбие на изучение VBA-Word. Тут понадобится много трудолюбия.
Скрипт вне форума Ответить с цитированием
Старый 12.01.2013, 11:48   #4
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

этот макрос не годится, потому что имя и место каждого дока всегда разные. А рекордер мне не помог - организатор не запускается, когда идет запись макроса.
Цитата:
тратьте ваше трудолюбие на изучение VBA-Word
вижу, вы противник разделения труда
предлагаете сапожнику учиться на пирожника или, точнее, учиться своими руками делать гвозди, которыми он подметки сапог прибивает
caute вне форума Ответить с цитированием
Старый 12.01.2013, 12:07   #5
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
caute: организатор не запускается, когда идет запись макроса.
Какая у вас версия программы Word - 2003, 2007 или другая?


Вот код для разных документов.
Документы даже можно не открытвать для копирования стилей.
Код:
Sub Макрос2()
    
    'Я добавляю перед переменными частицу "my",
    'чтобы имена моих переменных не совпадали со специальными словами.
    Dim mySource As String
    Dim myDestination As String
    
    '1. Здесь нужно указать путь и имя документа, из которого копируется стиль.
    mySource = "C:\Users\User\AppData\Roaming\Microsoft\Шаблоны\Normal.dotm"
    
    '2. Здесь нужно указать путь и имя документа, в который копируется стиль.
    myDestination = "C:\Users\User\Desktop\Doc1.docx"
    
    '3. Копирование стиля из одного документа в другой.
    Application.OrganizerCopy Source:=mySource, Destination:=myDestination, _
        Name:="Обычный", Object:=wdOrganizerObjectStyles
        
End Sub

Последний раз редактировалось Скрипт; 12.01.2013 в 12:14.
Скрипт вне форума Ответить с цитированием
Старый 12.01.2013, 12:25   #6
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

Цитата:
Здесь нужно указать путь и имя документа, в который копируется стиль.
говорю же русским языком: документов куча разных, ваш макрос не годится поэтому
Открываю любой чужой док из любого места и одним кликом меняю его стиль "Обычный" на свой, - вот всё, что мне хотелось бы. Как это делается через "Организатор": из правого окошка (normal.dot) стиль обычный копируется в левое (текущий док).
Word 2003 у меня

Последний раз редактировалось caute; 12.01.2013 в 12:32.
caute вне форума Ответить с цитированием
Старый 12.01.2013, 12:38   #7
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
caute: А рекордер мне не помог - организатор не запускается, когда идет запись макроса.
у меня запускается организатор в Word 2003 после включения макрорекордера.


Если нужно работать с несколькими документами, то попробуйте такой макрос. Этот макрос работает с активным документом:
Код:
Sub Макрос2()
    
    'Я добавляю перед переменными частицу "my",
    'чтобы имена моих переменных не совпадали со специальными словами.
    Dim mySource As String
    Dim myDestination As String
    
    '1. Здесь нужно указать путь и имя документа, из которого копируется стиль.
    mySource = "C:\Users\User\AppData\Roaming\Microsoft\Шаблоны\Normal.dotm"
    
    '2. Указываем путь и имя документа, в который копируется стиль.
    myDestination = ActiveDocument.FullName
    
    '3. Копирование стиля из одного документа в другой.
    Application.OrganizerCopy Source:=mySource, Destination:=myDestination, _
        Name:="Обычный", Object:=wdOrganizerObjectStyles
        
End Sub

Последний раз редактировалось Скрипт; 12.01.2013 в 12:43.
Скрипт вне форума Ответить с цитированием
Старый 12.01.2013, 13:24   #8
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

во! вроде, работает как надо.
пирожнику от сапожника - большое человеческое СПАСИБО!

(с рекордером я напутал, сорь, но в данном случае он бесполезен)
caute вне форума Ответить с цитированием
Старый 12.01.2013, 17:45   #9
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
caute: (с рекордером я напутал, сорь, но в данном случае он бесполезен)
вообще-то я с помощью макрорекордера узнал, какой инструмент использовать в данной задаче, а не с помощью справки или ещё чего-то.
Скрипт вне форума Ответить с цитированием
Старый 13.01.2013, 12:14   #10
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

я-то имел в виду, что готовый макрос нельзя так создать,
не отрицая тот факт, что программист может с помощью макрорекордера разобраться и написать нужный макрос (хотя некоторые тут умудряются и без помощи рекордера макросы писать )
caute вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена стиля "Обычный" caute Microsoft Office Word 3 13.01.2012 18:34
Как добавить в начертание стиля Arial "Обычный"? Star Fish Microsoft Office Word 8 26.05.2011 11:54
Excel, заменить "неразрывный пробел" на обычный Meta2 Microsoft Office Excel 8 03.11.2010 21:08
Чем отличаются обычный программист и "игровой" ?? aVague Gamedev - cоздание игр: Unity, OpenGL, DirectX 22 11.11.2007 23:41