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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.11.2008, 17:07   #1
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию Начало страницы

Доброго всем... вопрос, как в програмно созданом документе установить параметры шрифта, абзаца и т.д.
т.е.
что нужно написать после
documents.add(visible:=false)
чтобы он при вводе текста через Range(0).text, сразу писал в установленном формате.
tolikman вне форума
Старый 28.11.2008, 07:23   #2
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

сохрани докумет с выбранными шрифтом/форматированием абзаца и т.д. в качестве шаблона, а новый документ добавляй/открывай из этого шаблона.
madmot вне форума
Старый 28.11.2008, 09:22   #3
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

Цитата:
Сообщение от madmot Посмотреть сообщение
сохрани докумет с выбранными шрифтом/форматированием абзаца и т.д. в качестве шаблона, а новый документ добавляй/открывай из этого шаблона.
У меня один вордовский файл в котором находится очень много строк кода и форм штук 20, если его делать шаблоном, то ворд копирует весь контент vba, а этого делать не как нельзя.
Как можно продублировать именно тот момент, когда курсор находится в 0-м положении, и выбрать для этого шрифт и т.д..
пробовал выбрать весь имеющийся (а точнее не имеющийся в новом док) через range(0), прописал все что нужно, потом снова пишу range(0).text="блаблабла", так ворд забивает на то что я ему перед этим объяснил...
tolikman вне форума
Старый 28.11.2008, 12:51   #4
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

На сколько понял, предлагаю такой вариант:
пишешь процедурку где описываешь форматирование (можно воспользоваться макрорекордером) например у меня получилось так(форматирование абзаца)
Код:
Sub формат()
'
' формат Макрос
' Макрос записан 28.11.2008 madmot
'
    With Selection.ParagraphFormat
        .LeftIndent = CentimetersToPoints(0)
        .RightIndent = CentimetersToPoints(0)
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 0
        .SpaceAfterAuto = False
        .LineSpacingRule = wdLineSpace1pt5
        .Alignment = wdAlignParagraphLeft
        .WidowControl = True
        .KeepWithNext = False
        .KeepTogether = False
        .PageBreakBefore = False
        .NoLineNumber = False
        .Hyphenation = True
        .FirstLineIndent = CentimetersToPoints(1.25)
        .OutlineLevel = wdOutlineLevelBodyText
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LineUnitBefore = 0
        .LineUnitAfter = 0
    End With
End Sub
затем выбираешь ThisDocument в редакторе VBA, вверу в правом выпдающем списке выбираешь открытие документа и там вызываешь процедурку форматирования

Код:
Private Sub Document_Open()
    формат
End Sub
madmot вне форума
Старый 28.11.2008, 14:10   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
что нужно написать после
documents.add(visible:=false)
чтобы он при вводе текста через Range(0).text, сразу писал в установленном формате.
Код:
Sub test()
    With Documents.Add    '(, , , False)
        
        With .Range.Font ' устанавливаем параметры шрифта
            .Bold = True: .Size = 30
            .Color = wdColorBlue
        End With
        
        With .Range.ParagraphFormat ' параметры форматирования абзацев
            .Space2: .SpaceAfter = 6
            .Alignment = wdAlignParagraphDistribute
        End With
        
        ' теперь пишем текст (в назначенном нами формате)
        .Range(0).Text = "123456" & vbNewLine
        .Range.InsertAfter "новый текст"
        Selection.TypeText "888  "
    End With
End Sub
EducatedFool вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начало.... С++ illiaerne Свободное общение 8 08.11.2008 21:09
С# - начало mirawoo Софт 2 14.07.2008 17:48
Изучение ассемблера, начало Lich Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 18.06.2008 14:16
Как сделать разрыв страницы печати по условию и узнать номер страницы Leanna Microsoft Office Excel 2 21.01.2008 06:59
начало работы... zetrix PHP 1 29.10.2006 20:11